gpt4 book ai didi

ruby-on-rails - ActiveRecord:如果我覆盖了 getter 方法,如何获取记录列值?

转载 作者:行者123 更新时间:2023-12-03 15:36:40 27 4
gpt4 key购买 nike

我有一个 Users包含 3 个字段的表:guest_email(string), email(string), and guest(boolean)
我想覆盖电子邮件的获取方法,以便如果用户是访客,它会获取 guest_email 而不是电子邮件。

我该怎么做?这会导致堆栈溢出,因为它会调用自己:

def email
self.guest? ? self.guest_email : email
end

在方法内部,我将如何获取该特定记录的电子邮件列的值并绕过 getter 方法?

最佳答案

使用 read_attribute :

def email
guest? ? guest_email : read_attribute(:email)
end

或者,您可以使用 self[:attribute]正如@Stefan 指出的那样:
def email
guest? ? guest_email : self[:email]
end

关于ruby-on-rails - ActiveRecord:如果我覆盖了 getter 方法,如何获取记录列值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23249640/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com