【问题标题】:Rails - correct way to refer to current model instance inside of methods?Rails - 在方法中引用当前模型实例的正确方法?
【发布时间】:2012-04-28 08:18:04
【问题描述】:

假设我有一个 Post 模型,我想在保存时运行一个方法

post.rb 我愿意:

:before_save some_method_on_post

def some_method_on_post
  # Do something here
end

我的问题是,如何在方法内部引用当前实例化的 Post 对象?

编辑:为了澄清假设我想这样做:

def some_method_on_post
  post.some_property = foo
end

我是否将post 称为自我?

【问题讨论】:

  • 实例方法总是引用有问题的对象实例。这就是self 应该定义的内容。这里有什么困惑?

标签: ruby-on-rails ruby methods model instance


【解决方案1】:

是的。

使用属性设置方法时,参考self方法中的方法

def self.attribute_name=(value)
  @attribute_name = value
end

为了方便快捷,当您有一个检索但不设置对象的方法(因此是一个 getter)时,您可以省略 self,例如

def attribute_name
  @the_value
end

【讨论】:

  • 请注意,self 类似于 JavaScript 和其他语言中的 this
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-09
  • 2023-03-28
  • 1970-01-01
  • 2016-03-06
相关资源
最近更新 更多