UserモデルとMessageモデルがありそれぞれ以下のように関連付けしました。
ruby
1#user.rb 2has_many :send_messages, class_name: "Message", foreign_key: "send_user_id", dependent: :destroy 3has_many :recive_messages, class_name: "Message", foreign_key: "recive_user_id", dependent: :destroy;
ruby
1#message.rb 2belongs_to :send_user, class_name: "User", foreign_key: "send_user_id", optional: true 3belongs_to :recive_user, class_name: "User", foreign_key: "recive_user_id", optional: true
このように関連付けしてコンソールでしっかり呼び出せることも確認しました。
ですが以下のコードで呼び出せません。
ruby
1#users.controller 2def show 3 @user = User.find_by(id: params[:id]) 4 @recive_messages = @user.recive_messages.order(id: "DESC") 5 @send_messages = @user .send_messages.order(id: "DESC") 6end
ruby
1#users/show.html.erb 2<% @recive_messages.each do |message| %> 3#画像アップロードはcarrierwaveを使用しています 4 <%= message.send_user.profile_image.url %> 5 <%= message.send_user.username %> 6<% end %>
どちらもコンソールで呼び出せるのですがviewではNomethodErrorになってしまいます。
何卒よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー