4

私のコードには、名前に文字列 'cache' が含まれるモデルがあります。例えば:

class DataCache < ActiveRecord::Base

テーブル名はdata_caches. 私が実行すると:

"data_caches".classify.constantize.new

モデルを初期化すると、次のようなエラーが表示されます。

NameError: uninitialized constant DataCach

なぜこれが機能しないのですか?「DataCache」を期待していましたが、「DataCach」になりました。

4

2 に答える 2

5

RailsのInflectionsクラスを見てください。config/initializers/inflections.rb次のテキストをクラスに追加します。

ActiveSupport::Inflector.inflections do |inflect|
  inflect.irregular 'cache', 'caches'
end

今レールコンソールで単語を試してみてください:

>> "caches".singularize
=> "cache"
>> "cache".pluralize
=> "caches"
于 2012-07-07T21:21:39.780 に答える
2

この場合、レールが単数形を複数形に変換する方法を理解できるようにする必要があります。config/initializers/inflections.rbこの名前で更新してみてください。問題を解決する必要があると思います。

于 2012-07-07T14:25:50.557 に答える