発生している問題・エラーメッセージ
NameError (undefined local variable or method `user_id' for #<ChatRoom:0x00007fc006e0c180> Did you mean? user_ids user_ids=):
該当のソースコード
app/controllers/likes_controller.rb
ruby
1class LikesController < ApplicationController 2 3 def create 4 @chat_room = ChatRoom.find(params[:chat_room_id]) 5 @like = Like.new(user_id: current_user.id, chat_room_id: params[:chat_room_id]) 6 @like.save 7 #like_notification = @chat_room_like.chat_room 8 #like_notification.create_notification_like!(current_user) 9 respond_to do |format| 10 format.html { redirect_to chat_room_path(@chat_room) } 11 format.js 12 end 13 end
app/models/chat_room.rb
has_many :chat_room_users, dependent: :destroy has_many :users, through: :chat_room_users has_many :likes, dependent: :destroy has_many :users_like, class_name: 'User', through: :likes has_many :notifications, dependent: :destroy def create_notification_like!(current_user) temp = Notification.where(["visitor_id = ? and visited_id = ? and chat_room_id = ? and action = ? ", current_user.id, user_id, id, 'like']) if temp.blank? notification = current_user.active_notifications.new( chat_room_id: id, visited_id: user_id, action: 'like' ) if notification.visitor_id == notification.visited_id notification.checked = true end notification.save if notification.valid? end end
app/models/like.rb
class Like < ApplicationRecord belongs_to :user belongs_to :chat_room end
chat_roomがuserに対して多の関係性にある為、user_idsではないか?と出てきてしまいます。
chat_roomの情報を持たせて通知作成メソッドを呼び出すにはどのような形で持たせてあげるべきか分かる方ごご教授下さい!
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。