gpt4 book ai didi

ruby-on-rails - Before_create 不起作用

转载 作者:行者123 更新时间:2023-12-04 16:25:02 27 4
gpt4 key购买 nike

我有以下模型设置。但是从我在日志中可以看出,该变量在数据库中保存为空值:

class Bracket < ActiveRecord::Base
before_create :set_round_to_one

def set_round_to_one
@round = 1
end
end

我通过使用这样的东西来创建它:
bracket = Bracket.new(:name => 'Winners', :tournament_id => self.id)
bracket.save

我确实使用 create 来新建和保存,但它也不起作用。

最佳答案

假设 round是您 brackets 中的一个字段表,你需要调用setter:
self.round = 1
那是因为 round实际上是进入bracket的 key 的 attributes Hash 并通过调用 setter 正确设置该 Hash 中的值。

此外,与 @round = 1 ,您只是在创建一个名为 round 的新实例变量第一次被调用时被创建。由于 ActiveRecord 不会在实例变量中查找值(它会在 attributes 哈希中查找),因此就保存 @round 的值而言没有任何 react 。被关注到。

关于ruby-on-rails - Before_create 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6645025/

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