我有一个用户模型(我考虑因语法原因重命名UserAccount)
class User < ActiveRecord::Base
has_one :tutor, dependent: :destroy
end
然后我有一个导师模型
class Tutor < ActiveRecord::Base
belongs_to :user
end
但是,如果is_tutor布尔值设置为true,我只想创建导师信息。 is_tutor是User表中的一列。
是否应将此逻辑添加到用户的has_one逻辑内的验证或条件中?怎么做呢?
谢谢!
答案 0 :(得分:1)
我的想法是否可以做到这一点。
<强>模型/ user.rb 强>
after_update :check_tutor
def check_tutor
if self.is_tutor?
Tutor.find_or_create_by_user_id(self.id)
else
self.tutor.destroy
end
end
after_update
回调将在每次用户更新时检查用户ID或不是导师。