0

現在、users と roles の 2 つのテーブルがあります。もちろん、roles には user_id があり、roles モデルには user_id がbelongs_to :userあり、user モデルには がありhas_one :roleます。私が疑問に思っているのは、User モデルで Role モデルに新しいレコードを作成するにはどうすればよいかということです。ユーザーを作成するのと同じくらい簡単にモデルの外でこれを行うことができることは理解していますが、ユーザーモデルで行うと、より合理化され、すべてを1か所にまとめて簡素化できると思います。保存する前にユーザーのIDを知らなくても簡単にこれを行う方法について何か提案はありますか?

注: (new_record? が true の場合にのみ許可します。それ以外の場合は禁止されます。)

4

1 に答える 1

0

ユーザーとその設定で同様のことを行っていますが、おそらくこれでうまくいく可能性があります:

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

次に、ユーザーが保存されると、ロールも保存されます。

于 2012-06-12T20:32:41.797 に答える