gpt4 book ai didi

ruby-on-rails - Rails 中子类属性的默认值

转载 作者:行者123 更新时间:2023-12-04 05:56:09 26 4
gpt4 key购买 nike

假设在我的模式中我有一个用户表,其中的宠物属性字段默认为 ["dogs"]:

create_table "users", force: true do |t|
...
t.text "pets", default: ["dogs"], array: true
...

我有一个模型 FriendlyUser继承自类 User : class FriendlyUser < User

因此,当一个 FriendlyUser已创建,类型为“FriendlyUser”。但我想要 FriendlyUser将宠物设置为默认的狗和猫:["dogs", "cats"]

这是否可以通过迁移实现,或者必须在类中完成(通过重写 initialize 方法,使用 after_initializebefore_create 等)?

最佳答案

Rails 迁移中的默认值并不是为了处理这样的逻辑。从数据库方面来看,技术上可能可以使用触发器根据类型列中的值在插入时填充数据,但这可能比它的值(value)更麻烦和复杂。

before_validation 回调中设置值可能是您最好的选择。由于您使用的是继承,因此您可以覆盖子类中的回调。

关于ruby-on-rails - Rails 中子类属性的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36875321/

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