ActiveRecord Подклассы? - PullRequest
       2

ActiveRecord Подклассы?

1 голос
/ 15 мая 2011

Не уверен, что лучший способ построить это с помощью activerecord.Я смотрел на ИППП и полиморфизм, но оба они кажутся не совсем идеальными для этого случая.

У меня есть три разные модели, которые имеют одинаковую функциональность и некоторые общие атрибуты.В настоящее время у меня есть общие атрибуты в отдельной полиморфной модели, с которой у каждого из трех есть связь has_one.Это не идеально, потому что эти атрибуты хранятся в дочернем объекте.Я хотел бы, чтобы эти атрибуты были частью модели напрямую.

Есть предложения о том, как лучше всего это сделать?

1 Ответ

4 голосов
/ 15 мая 2011

Вы можете добавить свой код в модуль ...

/ lib / super_modules / special_power.rb

module SuperModules::SpecialPower
  def fly
    puts "I can fly"
  end
end

/ app / models / model_one.rb

class ModelOne < ActiveRecord::Base
  include SuperModules::SpecialPowers
end

/ app / models / model_two.rb

class ModelTwo < ActiveRecord::Base
  include SuperModules::SpecialPowers
end

Тогда будет работать следующее:

ModelOne.new.fly
ModelTwo.new.fly

И вы, вероятно, захотите добавить его в config / application.rb:

config.autoload_paths += %W(#{config.root}/lib)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...