gpt4 book ai didi

ruby-on-rails - 在 before_save 中设置参数

转载 作者:数据小太阳 更新时间:2023-10-29 08:31:48 24 4
gpt4 key购买 nike

与其说这是一个如何做的问题,不如说是一个为什么的问题。考虑下面的示例,我在其中尝试在保存前设置默认电子邮件。

class Organization < ActiveRecord::Base
before_save :set_default_email

def set_default_email
email ||= 'info@'+ domain
end
end

不幸的是,上述方法不起作用。相反,如果添加如下所示的 self ,它工作正常并且值被传递到数据库。

  def set_default_email
self.email ||= 'info@'+domain
end

但是,鉴于 ruby​​ 中的默认接收者是 self(这就是它理解域等的原因),self.email 和 email 不应该是一回事吗?

最佳答案

不,Ruby 假定构造 variable = value 是局部变量赋值。这就是为什么在 setter 方法中,你必须明确地指向接收者。

关于ruby-on-rails - 在 before_save 中设置参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26378847/

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