2

重複の可能性:
Railsの命名規則をオーバーライドするにはどうすればよいですか?

Railsで新しいモデルを生成すると、テーブル名が自動的に複数形になります。ただし、これは常にうまくいくとは限りません。特に、非標準の複数形を持つ単語の場合はそうです。

というモデルを作成しましたlens。railsは単語がすでに複数形であると考えていたため、移行ファイルのテーブル名を複数形にしませんでした。問題ありません–移行を実行する前に、ファイルを編集してに変更lensしました。lenses

残念ながら、Lensクラスをインスタンス化しようとすると、次のエラーが発生します。

Could not find table 'lens'

これは、Railsが単語がすでに複数形になっていると見なしているためだと思います。そのため、データベースでテーブルを検索しようとするときに、単語を複数形にしようとはしません。

だから私は何をしますか?慣例を破って、Railslensに代わりにテーブルを呼び出させるlenses必要がありますか、それともこれを適切に構成する方法がありますか?

4

1 に答える 1

6

config/initializers/inflections.rb次のようなことができるファイルが必要です。

ActiveSupport::Inflector.inflections do |inflect|
  inflect.plural 'lens', 'lenses'
end
于 2012-11-23T07:49:58.767 に答える