加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails 4关注点:将类实例变量赋予模型

发布时间:2020-12-16 19:21:03 所属栏目:百科 来源:网络整理
导读:对于Rails问题,我可以通过包含它们来通过模块提供我的模型类方法和实例方法.我发现没有博客条目或帖子提到我如何在我的模型中包含变量. 具体来说,我想给我的包含模型一个类实例变量@question,但我不知道在模块中将声明放在何处以便应用它.如果模型本身声明该
对于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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读