Zer*_*Max 11 ruby ruby-on-rails ruby-on-rails-4 activesupport-concern
对于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
Run Code Online (Sandbox Code Playgroud)
Mar*_*rom 16
module ContentAttribute
extend ActiveSupport::Concern
included do
self.question = "I am a generic question."
end
module ClassMethods
attr_accessor :question
end
end
Run Code Online (Sandbox Code Playgroud)
那么,在视频中......
class Video < ActiveRecord::Base
include ContentAttribute
self.question = "Specific question"
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7137 次 |
| 最近记录: |