<% 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
应定义:
[...]不计其数的单词,不应该改写。
但是由于某些原因,这还是不够的(我有时间会深入探讨一下,看看发生了什么事)
无论如何,在inflect.irregular
中使用inflect.uncountable
代替config/initializers/inflections.rb
似乎可以解决问题
ActiveSupport::Inflector.inflections(:en) do |inflect|
inflect.irregular 'software', 'software'
end