こんにちわ。
Railsで多対多の関係を作った時の中間テーブルのレコードの保存について疑問があるので、質問させていただきます。
例えば、Lineの様なグループチャットのアプリを作る時に、
User User_group (中間テーブル) Group
と言う3つのモデルを作り、「ユーザーは複数のグループに所属でき、グループは多くのユーザーを持つ」と言う多対多の関係を作りますよね。
そして、ユーザーが新規グループを作れるように以下のコードを書いたのですが、これではGroupのレコードだけが保存されて、中間テーブルのUser_groupのレコードは保存されませんでした。
#group_controller.rb def create @group = current_user.groups.new(group_params) respond_to do |format| if @group.save 省略 end
しかし、コードを以下の様に書き換えると、User_groupも上手く保存できました。
#group_controller.rb def create @user = current_user @group = @user.groups.new(group_params) respond_to do |format| if @user.save 省略 end
ここで疑問なのですが、なぜif @user.saveと書き換えることで、User_groupのレコードも保存できるようになるのでしょうか?
ご回答よろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/03/14 04:20