【发布时间】:2015-01-15 04:02:08
【问题描述】:
今晚与我的一位同事就 Rails 中的方法与属性进行了辩论。我发誓我以前见过这个,除非我疯了。这是一个例子:
我们有一个用户模型,我们希望在保存记录之前确定我们有名字和姓氏。我讨厌回调,但对于这个例子,假设它在 before_save 回调中。
class User
before_save :set_first_last
def set_first_last
first_name if self.first_name.blank?
last_name if self.last_name.blank?
end
def first_name
self.first_name = self.name.split(" ").first
end
def last_name
self.last_name = self.name.split(" ").last
end
end
所以,我很好奇是否调用了方法“set_first_last”名称并且它看到用户上的属性 first_name 是空白的,它会调用方法“first_name”,对吗? user 上的属性 first_name 与称为“first_name”的方法不同。因此,名为“first_name”的用户对象上的属性与 Rails 中名为“first_name”的用户类上的方法不同,对吗?这就像类级方法与实例方法?只是想确保我是正确的,并且我正在正确地解释这一点。
谢谢
--麦克
【问题讨论】:
标签: ruby-on-rails ruby