前提・実現したいこと
Railsの学習として、ツイッターぽいアプリを作成中です。
ユーザー一覧ページ(users#index)のデータ出力として、
usersテーブルの情報の他に、そのユーザーがつぶやいた最新一件の内容をpostsテーブルからひっぱってきて表示させたいと思っているのですがエラーが発生してしまっています。
Model
◾️Post(つぶやき情報)
postのフィールド id, content, user_id...
◾️User(ユーザー情報)
Userのフィールド id, name,...
View
users/index.html.erb
erb
1<ul> 2 <% @users.each do |user| %> 3 <li> 4 <%= link_to("/users/#{user.id}")do %> 5 <%= user.name %> 6 <br> 7 <%= user.comment %> 8 <br> 9 <%= user.lastpost.content %> 10 11 <% end %> 12 </li> 13 <% end %> 14</ul>
lastpostのUserモデル内インスタンスメソッド
#user.rb class User < ApplicationRecord def lastpost return Post.where(user_id: self.id).first(1) end end
users-controllerの該当箇所
def index @users = User.all end
発生している問題・エラーメッセージ
NoMethodError in Users#index undefined method `content' for #<ActiveRecord::Relation []>
lastpostのcontentメソッドが定義されていないとのことなので、インスタンスメソッド周りでミスがあるのでしょうか?
ご教授いただけると助かります。
補足情報(FW/ツールのバージョンなど)
Rails 5.2.2
vagrant Centos6.8
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/28 06:55