rails用条件更改列默认值

时间:2013-02-14 00:56:41

标签: ruby-on-rails migration

我有用户模型(has_one:个人资料)和个人资料模型(belongs_to:用户)。

我想将profile.deliver_project_news的默认值更改为:twice_a_week的{​​{1}}。

我可以通过迁移处理这个问题吗?如果是的话,我该怎么办呢?

1 个答案:

答案 0 :(得分:0)

在我看来,你不应该把这个逻辑放在你的数据库中。我认为它应该放在你的模型层中

class Profile < ActiveRecord::Base

    before_validate: set_defaults

    def set_defaults
        if user.user_type != "customer"
            deliver_project_news ||= "twice_a_week"
        else
            deliver_project_news ||= "none"
        end
    end
end