Ruby on rails form_for和不可数模型

时间:2010-10-20 20:08:35

标签: ruby-on-rails routes

<% 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| %>

产生正确的输出,所以也许我会以错误的方式处理整个不可数的事情?通常有更好的方法使用具有相同单数和复数字的模型吗?

1 个答案:

答案 0 :(得分:2)

我知道这个问题很老但我在Rails 4.1上遇到了类似的问题。 根据{{​​3}},inflect.uncountable应定义:

  

[...]不应该尝试的不可数字。

然而由于某种原因,这是不够的(我会潜入源头看一看,看看有没有时间会发生什么)

无论如何,在inflect.irregular中使用inflect.uncountable代替config/initializers/inflections.rb似乎可以解决问题

ActiveSupport::Inflector.inflections(:en) do |inflect|
  inflect.irregular 'software', 'software'
end