big*_*ato 3 activerecord ruby-on-rails
我有一个Users包含3个字段的表:guest_email(string), email(string), and guest(boolean)
我想覆盖电子邮件的获取方法,这样如果用户是访客,它会抓取guest_email而不是电子邮件.
我该怎么做?这会导致堆栈溢出,因为它会调用自身:
def email
self.guest? ? self.guest_email : email
end
Run Code Online (Sandbox Code Playgroud)
在方法内部,我如何获取该特定记录的电子邮件列的值并绕过getter方法?
def email
guest? ? guest_email : read_attribute(:email)
end
Run Code Online (Sandbox Code Playgroud)
或者,您可以self[:attribute]按照@Stefan的指示使用:
def email
guest? ? guest_email : self[:email]
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
930 次 |
| 最近记录: |