Rails に関しては、モデルのクラス メソッドとインスタンス メソッドをモジュールに含めることで提供できます。ただし、モデルに変数を含める方法について言及しているブログ エントリやスレッドは見つかりませんでした。
具体的には、インクルード モデルにクラス インスタンス変数を指定したい@question
のですが、モジュール内のどこに宣言を配置すればよいか分からないため、適用されます。モデル自体がその変数を宣言している場合は、クラスのインスタンス変数もオーバーライドしたいと思います。
ActiveSupport::Concern
モジュールは実際に変数をまったく気にしますか?
module ContentAttribute
extend ActiveSupport::Concern
def foo
p "hi"
end
module ClassMethods
# @question = "I am a generic question." [doesn't work]
def bar
p "yo"
end
end
end
class Video < ActiveRecord::Base
include ContentAttribute
# @question = "Specific question"; [should override the generic question]
end