Rails 2.3.9 вопрос о множественном названии моделей - PullRequest
1 голос
/ 18 июня 2011

Я разрабатываю простой выбор.Дело в том, что мой код должен быть на испанском языке, поэтому вместо использования роли я должен использовать Rol (плюрар остается неизменным: роли).

Итак, моя модель называется: Rol и имя моего контроллера:Роли и в моей БД: Роли

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

Однако, когда я запускаю этот код, я получаю:

ActiveRecord :: JDBCError: Таблица 'turaser2.rols' не существует: SELECT * FROM rols

(по понятным причинам) ... Итак, мой вопрос: как я могу сказать rails смотреть в таблицу "role" вместо таблицы "rols"?

Спасибо!

Ответы [ 2 ]

3 голосов
/ 18 июня 2011

Лучший способ сделать это - добавить новую запись в инфлектор. Если вы зададите имя таблицы только с помощью set_table_name, множественное число все равно не будет выполнено, где бы вы ни захотели его использовать.

Перейти к config/initializers/inflections.rb и добавить:

 ActiveSupport::Inflector.inflections do |inflect|
   inflect.irregular 'rol', 'roles'
 end
2 голосов
/ 18 июня 2011

Самый простой способ - сделать что-то вроде:

set_table_name "roles"

в вашей модели.

...