对于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
解决方法
module ContentAttribute extend ActiveSupport::Concern included do self.question = "I am a generic question." end module ClassMethods attr_accessor :question end end
那么,在视频中……
class Video < ActiveRecord::Base include ContentAttribute self.question = "Specific question" end
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。