我的用户是(布尔)学生,导师,或者两者都是'。除非另有说明,否则我的用户在所有3个用户中都会自动为false,但我希望默认值为'两者都是'基于用户既是学生又是导师,因此如果学生和导师是布尔人,则两者都是学生和&导师。如何创建迁移来执行此操作?
迁移文件无效。
class ChangeUserBoth < ActiveRecord::Migration
def change
change_column :users, :both, :boolean, :default => :student && :tutor
end
end
答案 0 :(得分:0)
在编写迁移代码时,您无法通过条件方法,但您可以通过以下方式获得所需的结果:
# In your model code
before_save :set_both_based_on_student_and_tutor
private
def set_both_based_on_student_and_tutor
# Ternary way saves your form 'both' being 'nil'. It would always
# either be true or false
self.both = (self.student && self.tutor) ? true : false
end