Rails - 在方法中引用当前模型实例的正确方法?

And*_*nov 1 ruby methods model ruby-on-rails instance

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

post.rb我这样做:

:before_save some_method_on_post

def some_method_on_post
  # Do something here
end
Run Code Online (Sandbox Code Playgroud)

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

编辑:所以澄清假设我想这样做:

def some_method_on_post
  post.some_property = foo
end
Run Code Online (Sandbox Code Playgroud)

我是指post自己吗?

Mic*_*ant 8

是.

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

def self.attribute_name=(value)
  @attribute_name = value
end
Run Code Online (Sandbox Code Playgroud)

作为一个快捷方便,当你有一个方法来检索但不设置对象(所以一个getter),你可以省略self,例如

def attribute_name
  @the_value
end
Run Code Online (Sandbox Code Playgroud)