<% form_for(@software) do |f| %>
正在生成一个如下所示的表单标记:
<form action="/software.%23%3Csoftware:0x24b2eac%3E" ...
软件模型有点特殊,因为我已经把它变成了不可数的(软件并不适合我)
environment.rb:
ActiveSupport::Inflector.inflections do |inflect|
inflect.uncountable %w( software )
end
但我确实命名了一个单一的形式来让路线发挥作用
map.resources :software, :singular => :software_item
像这样修改form_for:
<% form_for(@software, :url => software_item_path) do |f| %>
产生正确的输出,所以也许我会以错误的方式处理整个不可数的事情?通常有更好的方法使用具有相同单数和复数字的模型吗?
最佳答案 我知道这个问题已经很老了但我在Rails 4.1上遇到了类似的问题.
根据
Inflection doc,inflect.uncountable应该定义:
[…] uncountable words that shouldn’t be attempted inflected.
然而,由于某种原因,这是不够的(我会潜入源头并看看,一旦我有时间,看看会发生什么)
无论如何,在config / initializers / inflections.rb中使用inflect.irregular而不是inflect.uncountable似乎可以做到这一点
ActiveSupport::Inflector.inflections(:en) do |inflect|
inflect.irregular 'software', 'software'
end