前提・実現したいこと
railsで、パートナーに毎回の食事を写真とメッセージを投稿できるチャットアプリを作っています。
ユーザー1人は1つのルームにしか所属できないようにするにはどうしたら良いのでしょうか?
現状
テーブルを以下のように設定しています(カラム名省略)
README
1## users テーブル 2### Association 3- has_many :room_users 4- has_many :rooms, through: room_users 5- has_many :reports 6 7## rooms テーブル 8### Association 9- has_many :room_users 10- has_many :users, through: room_users 11- has_many :reports 12 13 14## room_users テーブル 15| Column | Type | Options | 16| ------- | ---------- | ------------------------------ | 17| user_id | references | null: false, foreign_key: true | 18| room_id | references | null: false, foreign_key: true | 19### Association 20- belongs_to :room 21- belongs_to :user 22 23## reports テーブル 24### Association 25- belongs_to :room 26- belongs_to :user
該当のソースコード
roomモデル
ruby
1class Room < ApplicationRecord 2 has_many :room_users 3 has_many :users, through: :room_users 4 has_many :reports 5 6 validates :name, presence: true 7end
roomコントローラー
ruby
1class RoomsController < ApplicationController 2 3 def new 4 @room = Room.new 5 end 6 7 def create 8 @room = Room.new(room_params) 9 if @room.save 10 redirect_to root_path 11 else 12 render :new 13 end 14 end 15 16 private 17 18 def room_params 19 params.require(:room).permit(:name, user_ids: []) 20 end 21 22end
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/26 23:39