【问题标题】:Rails ActiveRecord self.___ vs @____Rails ActiveRecord self.___ vs @____
【发布时间】:2011-07-31 15:18:37
【问题描述】:

我认为这是一个非常愚蠢的问题,但我只是把自己弄糊涂了

我定义了几个 has_many。我可以在实例方法中通过说 self 来引用它们。-------- 如果我尝试通过 @-------- 进行引用,我会得到 nil。是不是因为它是一个 ActiveRecord 对象,所以它不能作为类中的实例变量使用?

【问题讨论】:

    标签: ruby-on-rails activerecord associations


    【解决方案1】:

    它们没有设置为实例变量,它们是方法。与您的属性相同,您应该始终像这样访问它们:

    self.property
    self.read_attribute(:property)
    self.write_attribute(:property, value)
    

    最后它们甚至可以是实例变量,但这是一个实现细节,您应该始终通过众所周知的接口调用代码,也就是方法。

    【讨论】:

      【解决方案2】:

      关联是方法而不是实例变量。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-04-25
        • 2011-07-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多