私は、単一のテーブル継承を使用するモデルと、どのモデルでも動作する必要があるという懸念を持っています。ActiveRecord単一テーブルの継承 - ルートモデルを取得する方法?
は、この例を考えてみましょう:私はSuv
を持っているし、そのカテゴリを操作する場合
class Car
acts_as_categorizable
end
class Suv < Car; end
module Categorizable
def after_safe
siblings = this.class.where(category: self.category)
#... do something with the siblings
end
end
は今、兄弟ラインは、そのカテゴリ内の他のSuv
の車を見つけるだろうが、私は、そのカテゴリ内のすべての車を見つける必要があります。
私はこのコードをハードコードしたくないので、Suv
クラスがあれば、そのルートモデル(Car
)を見つける必要があります。
has_manyとbelongs_toの関係を確立する必要があります。b/w car&suvs –
あなたのモジュールは車以外のモデルでも動作する必要がありますか?もしそうでなければ、Carモデル 'Car.where(category:self.category)'に問い合わせるオプションがあります。 – Uzbekjon