Если у меня есть классы, как это,класс на модули ActiveRecord
class A < ActiveRecord::Base
include ExampleModule
end
class B < ActiveRecord::Base
include ExampleModule
end
module ExampleModule
module ClassMethods
...
end
def included(base)
...
end
end
, как я могу получить ссылку на класс А или В внутри ExampleModule на ссылки, включая этот модуль в любой из этих классов? Я задаю этот вопрос, потому что хотел сделать что-то вроде добавления has_one: association или after_create: do_something в класс A или B с помощью примера ExampleModule, например, ниже.
class A < ActiveRecord::Base
include ExampleModule
end
class B < ActiveRecord::Base
include ExampleModule
end
module ExampleModule
has_one :association
after_create :do_something
module ClassMethods
...
end
def included(base)
...
end
end
Есть ли лучший способ сделать это? Благодаря!
Я ожидал чего-то другого, но ваш ответ был лучше, чем мое ожидание. Благодаря! – RubyFanatic
Поддерживает ли ActiveSupport :: Concern также и контроллеры? Как добавить before_filter и т. Д.? – RubyFanatic
Я предполагаю, что это возможно, но я только использовал «Концерн» с моделями. (проверка документации) ... на самом деле, похоже, что это будет честная игра (см. http://www.fakingfantastic.com/2010/09/20/concerning-yourself-with-active-support-concern/) – rjz