1

我正在开发一个简单的选择。问题是我的代码需要是西班牙语,所以我必须使用 Rol 而不是使用 Role(复数保持不变:Roles)。

所以,我的模型名称是:Rol 和我的控制器名称:角色,在我的数据库中:角色

<% roles = Rol.all %>
<%=  collection_select(:usuario, :rol_id, roles, :id, :nombre, {:prompt => true}) %>

但是,当我运行该代码时,我得到:

ActiveRecord::JDBCError: 表 'turaser2.rols' 不存在: SELECT * FROMrols

(出于显而易见的原因)......所以,我的问题是:我怎样才能告诉 Rails 查看“角色”表而不是“角色”表?

谢谢!

4

2 回答 2

3

最好的方法是向变形器添加一个新条目。如果你只用 设置表名set_table_name,复数形式仍然会在你想使用它的任何其他地方失败。

转到config/initializers/inflections.rb并添加:

 ActiveSupport::Inflector.inflections do |inflect|
   inflect.irregular 'rol', 'roles'
 end
于 2011-06-17T20:59:34.790 回答
2

最简单的方法是执行以下操作:

set_table_name "roles"

在你的模型中。

于 2011-06-17T20:57:00.617 回答