は、私は私のRailsの5 ApplicationRecord
を持っています。さて、各モデル名をカスタマイズしてデータベーステーブルにマッピングしたいと思います。例えば、私が行うことができます。Rails 5:モデルとSQLテーブル名の間の名前マッピングをオーバーライドする最も良い方法は?</p> <pre><code>class ApplicationRecord < ActiveRecord::Base self.abstract_class = true end </code></pre> <p>と<code>ApplicationRecord</code>から継承したモデルの束:
class MyModel < ApplicationRecord
self.table_name = 'MY_MODELS' # overrides default 'my_models'
end
をしかし、すべてのマッピングは予測可能なので、私はちょうど、基本クラスであることを行うだろうと思った:
class ApplicationRecord < ActiveRecord::Base
self.abstract_class = true
def self.table_name
self.name.underscore.pluralize.upcase
end
end
...しかし、それは動作しませんでした技術的にはクラスメソッドをサブクラスに継承する必要があります。これはどちらか動作しませんでした
class ApplicationRecord < ActiveRecord::Base
self.abstract_class = true
def self.inherited(subclass)
subclass.table_name = subclass.name.underscore.pluralize.upcase
end
end
:(?任意のアイデアなぜ)
また、私はこのような何かをした方法を追加してみました。これを行う最善の方法の考えですか?
これはうまくいきましたか、またはリロードする必要があると思います!サーバーまたはコンソールを有効にするには真 'クラスApplicationRecord
oreoluwa