Rails 2.3.9复数模型名称问题

时间:2011-06-17 20:47:01

标签: ruby-on-rails pluralize

我正在开发一个简单的选择。事情是我的代码需要西班牙语,所以 而不是使用角色我必须使用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”表?

谢谢!

2 个答案:

答案 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"

在您的模型中。