我正在开发一个简单的选择。事情是我的代码需要西班牙语,所以 而不是使用角色我必须使用Rol(插件保持不变:角色)。
所以,我的模型名称是:Rol和我的控制器名称:角色和我的数据库:角色
<% roles = Rol.all %>
<%= collection_select(:usuario, :rol_id, roles, :id, :nombre, {:prompt => true}) %>
然而,当我运行该代码时,我得到:
ActiveRecord :: JDBCError:表 'turaser2.rols'不存在:SELECT * FROM
rols
(出于显而易见的原因)......所以,我的问题是:如何告诉rails查看“roles”表而不是“rols”表?
谢谢!
答案 0 :(得分:3)
执行此操作的最佳方法是向变形器添加新条目。如果您只使用set_table_name
设置表名,则复数化仍会在您可能想要使用它的任何其他地方失败。
转到config/initializers/inflections.rb
并添加:
ActiveSupport::Inflector.inflections do |inflect|
inflect.irregular 'rol', 'roles'
end
答案 1 :(得分:2)
最简单的方法是执行以下操作:
set_table_name "roles"
在您的模型中。