Railsにて、3つのモデル間でcurrent_userのuser_idを関連付ける方法がわかりません。
userの作成には,deviseを用いています
chat.rb
class Chat < ActiveRecord::Base belongs_to :room belongs_to :user end
user.rb
class User < ActiveRecord::Base devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable has_many :rooms has_many :chats, dependent: :destroy end
room.rb
class Room < ActiveRecord::Base belongs_to :user has_many :chats, dependent: :destroy has_many :tasks end
これらのモデルにおいて、chats_controllerでcurrent_userのuser_idを取得したいのです。
chats_controller.rb
before_action :set_room before_action :set_chat, except: [:create] def new @chat = @room.chats.create end def create @chat = @room.chats.create(chat_params) raise if @chat.save redirect_to @room else render "new" end end private def chat_params params[:chat].permit(:comment) end def set_room @room = Room.find(params[:room_id]) end def set_chat @chat = @room.chats.find(params[:id]) end def room_params @room = Room.find(params[:room_id]) end
未熟者ですが、よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/09 12:22