1

私は単純な選択を開発しています。コードはスペイン語にする必要があるため、Role を使用する代わりに Rol を使用する必要があります (複数形は同じままです: Roles)。

したがって、私のモデル名は: Rol で、コントローラー名は Roles で、DB では Roles です。

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

ただし、そのコードを実行すると、次のようになります。

ActiveRecord::JDBCError: テーブル 'turaser2.rols' が存在しません: SELECT * FROMrols

(明らかな理由で)...私の質問は、「ロール」テーブルの代わりに「ロール」テーブルを調べるようにレールに指示するにはどうすればよいですか?

ありがとうございました!

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 に答える