0

我有一个用户模型(出于语法原因,我正在考虑重命名 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 逻辑中的条件中?这将如何完成?

谢谢!

4

1 回答 1

1

我的想法是如何做到这一点。

模型/用户.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 或不是导师,回调将在每次更新用户时检查。

于 2013-07-28T22:23:20.790 回答