gpt4 book ai didi

ruby-on-rails - 如何为事件记录枚举指定默认值?

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

给定以下带有 enum 列的 ActiveRecord 模型:

class User < ActiveRecord::Base
enum role: [:normal, :sales, :admin]
end

如何在 保存到数据库之前为role 列设置默认值。

例如:

user = User.new
puts user.role # Should print 'normal'

最佳答案

class User < ActiveRecord::Base
enum role: [:normal, :sales, :admin]

after_initialize do
if self.new_record?
self.role ||= :normal
end
end
end

或者如果你愿意

class User < ActiveRecord::Base
enum role: [:normal, :sales, :admin]

after_initialize :set_defaults

private

def set_defaults
if self.new_record?
self.role ||= :normal
end
end
end

请注意,我们使用 ||= 来防止 after_initialize 破坏在使用 User.new(some_params) 初始化期间传入的任何内容

关于ruby-on-rails - 如何为事件记录枚举指定默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35783768/

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