gpt4 book ai didi

ruby-on-rails - rails : validation fails with before_create method on datetime attribute

转载 作者:数据小太阳 更新时间:2023-10-29 07:46:17 25 4
gpt4 key购买 nike

ApiKey.create! 

抛出验证错误:expires_at 不能为空。

class ApiKey < ActiveRecord::Base
before_create :set_expires_at

validates :expires_at, presence: true

private

def set_expires_at
self.expires_at = Time.now.utc + 10.days
end
end

有属性

t.datetime :expires_at

但是,如果删除了验证,则 before_create 方法会在创建时起作用。

这是为什么? - 此模式适用于其他属性,例如access_tokens(字符串)等

最佳答案

我会说因为 before_create 在验证之后运行,也许您想将 before_create 替换为 before_validation

注意:如果你像那样留下回调,它会在你运行 valid?save 或任何时候设置到期日期触发验证的事件记录方法,您可能希望将此验证限制为仅创建过程

before_validation :set_expires_at, on: :create

这将限制仅在第一次运行创建时调用函数。

关于ruby-on-rails - rails : validation fails with before_create method on datetime attribute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25837960/

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