前提・実現したいこと
Railsで記事投稿アプリを作成しています。
renderのcollectionオプションを用いてviewに表示させようとしています。
発生している問題・エラーメッセージ
これは使用しようとしているテンプレート内の記述です。
ActionView::Template::Error (undefined method `image' for nil:NilClass): 3: 4: <div class="left-box"> 5: <div class="jaket-box"> 6: <%= image_tag(@article.image, size: "100x100", class: "index-jaket-image") %> 7: </div> 8: </div> 9:
該当のソースコード
ユーザーには記事と画像が紐づけてあります。
ruby
1class User < ApplicationRecord 2 3 has_one_attached :image 4 has_many :articles, dependent: :destroy 5end
記事には別の画像が紐づいています。
ruby
1class Article < ApplicationRecord 2 has_one_attached :image 3 4end 5 6
これがviewへインスタンス変数を渡す際のアクションの記述です。
ruby
1#userscontroller 2 3def show 4 @user = User.find(params[:id]) 5 @articles = @user.articles 6end 7 8
そしてこれが上記のアクションで定義したインスタンス変数を渡すrenderの記述です。
html
1#renderを使用しているviewの記述 2 3<div class="user-show-bottom"> 4 <%= render partial: 'shared/overview_articles', collection: @articles %> 5</div> 6
試したこと
初歩的なスペルミスの確認はしましたがご覧の通りありません。
エラーページ下部にあるツールで各インスタンスの情報を調べたところ
以下の様になっておりrenderに渡す時点では複数情報を持った配列になっているものの
テンプレート内部に渡された時点で中身が空になっていると解釈しています。
collectionオプションの使い方自体が間違っているのでしょうか?
回答の程、宜しくお願い致します。
補足情報(FW/ツールのバージョンなど)
Ruby 2.6.5
Rails 6.0.3.5
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。