前提・実現したいこと
RubyonRailsで本の感想投稿サイトを作っています。
現在、本の投稿一覧画面を制作中です。
一覧表には、投稿内容と投稿したユーザーのプロフィール画像を表示させようとしています。
モデルはUserとBookがあり、アソシエーションしています。
books_controllerで@imageに渡す情報の記述が間違っています。
「投稿したユーザーのプロフィール画像」を呼び出す書き方が分かりません。
アソシエーションの理解不十分で申し訳ないのですが、どのように呼び出したらよいか質問させてください。
発生している問題・エラーメッセージ
NoMethodError in BooksController#index undefined method `user_profile_id'
該当のソースコード
user.rb class User < ApplicationRecord has_many :books, dependent: :destroy end
book.rb class Book < ApplicationRecord belongs_to :user end
books_controller.rb def index @books = Book.all @user = User.find(current_user.id) @book = Book.new @image = @books.user_profile_id #ここにエラーが出ています end
index.html.erb <% @books.each do |book| %> <tr> <td> <!--ここにプロフィール画像を入れたいです--> <%= attachment_image_tag @image, :profile_image, :fill, 40, 40, format: 'jpeg', fallback: "no_image.jpg" %> </td> <td><%= book.title %></td> <td><%= book.body %></td> </tr> <% end %>
試したこと
@image = @books.user
@image = User.find(params[:id])など、分からず色んな組み合わせで入れてしまいました。
補足情報(FW/ツールのバージョンなど)
usersテーブルのカラム t.string "name" t.text "introduction" t.string "profile_image_id" booksテーブルのカラム t.string "title" t.text "body" t.integer "user_id"
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/05 01:59