使用 has_one 或 has_many 时自动将新记录插入关联



现在我有两个表,用户和角色,当然角色有user_id,角色模型有belongs_to :user,用户模型有has_one :role。 我想知道的问题是,如何让用户模型在角色模型中创建新记录。 我知道我可以像创建用户一样轻松地在模型之外执行此操作,但我认为它可能会更加精简,并将所有内容都保留在一个位置,如果我在用户模型中执行此操作,则可以简化它。 对于如何在保存用户 ID 之前轻松执行此操作,是否有任何建议?

注意:(我只允许在new_record?为真时这样做,否则将被禁止。

我正在对用户及其设置做类似的事情,这可能对您有用:

class User < ActiveRecord::Base
#...
has_one :role
before_create :build_a_role
private
  def build_a_role
    self.build_role(role_att: value)
  end
end

然后,当保存用户时,角色也会保存。

最新更新