質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Active Record

Active Recordは、一つのオブジェクトに対しドメインのロジックとストレージの抽象性を結合するデザインパターンです。

Q&A

1回答

1019閲覧

Active Storageのundefined method `images' for nil:NilClassで画像が表示されない

sk-

総合スコア2

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Active Record

Active Recordは、一つのオブジェクトに対しドメインのロジックとストレージの抽象性を結合するデザインパターンです。

0グッド

0クリップ

投稿2021/04/19 05:53

編集2022/01/12 10:55

##解決したいこと
複数の画像を保存することができたがその保存した画像を表示することができない。

##エラー内容
undefined method `images' for nil:NilClass

<div> <% if @cooking.images.attached? %> <% @cookings.images.each do |image| %> <%= image_tag image.variant(resize: "150x150") %> <% end %>

この部分にエラーが出ています

新規投稿画面のビューです <header class='second-header'> <%= image_tag("app-logo.png", class:"second-logo")%> </header> <%= form_with model: @cooking, local:true do |f|%> <div class="form-group"> <div class='form-text-wrap'> <label class="form-text">料理名</label> <span class="indispensable">必須</span> </div> <%= f.text_area :cooking_name, class:"input-default", id:"cooking_name", placeholder:"例:カレー", maxlength:"15" %> </div> <div class="view_box"> <label>料理完成画像を載せましょう。</label> <%= f.file_field :images, multiple: true, name: 'cooking[images][]', id: 'cooking_images', type:"file", class:"file" %> </div> <div class="form-group"> <div class="form-text-wrap"> <label class="form-text">材料</label> <span class="indispensable">必須</span> </div> <%= f.text_area :material, class:"form-default", id:"cooking_material", placeholder:"例:カレールー 1/2箱, もも肉200g, にんじん一本, 玉ねぎ一個, ジャガイモ一個, 水830ml, サラダ油適量 (必須 1,000文字まで)", rows:"6" ,maxlength:"1000" %> </div> <div class="form-group"> <div class="form-text-wrap"> <label class="form-text">レシピ</label> <span class="indispensable">必須</span> </div> <%= f.text_area :recipe, class:"form-default", id:"cooking_recipe", placeholder:"例: 1,ジャガイモは皮をむき、芽を取り除く。他の野菜も皮を剥いておく。2,もも肉と野菜を一口大に切る。3,フライパンにサラダ油を引いたら中火で肉を炒めます。4,野菜を加え、玉ねぎが透き通るくらいまで炒める。5,水を加えて15~20分煮込みます。6,カレールーを加えて完全に溶かしながら10分煮込んで完成です。(必須 5,000文字まで)",rows:"7", maxlength:"5000" %> </div> <div class="form-group"> <div class="form-text-wrap"> <label class="form-text">ポイント1</label> <span class="indispensable">必須</span> </div> <%= f.text_area :point1, class:"form-default", id:"cooking_point1", placeholder:"例:水を加えたら、まずは強火。沸騰したら火を少し弱めてアクを取り、鍋の蓋を少し開けて、弱火から中火で約20分間、コトコト沸騰を続けましょう。", rows:"5" ,maxlength:"1000" %> </div> <div class="form-group"> <div class="form-text-wrap"> <label class="form-text">ポイント2</label> <span class="indispensable">必須</span> </div> <%= f.text_area :point2, class:"form-default", id:"cooking_point2", placeholder:"例:カレールーをと溶かす時は、いったん火を止めてから!火をつけたまま、熱い鍋にカレールーを入れると、カレールーが溶けにくくなることがあります。必ずいったん火を止めて、カレールーを割り入れ、おたまでまぜて、よく溶かしましょう。", rows:"5" ,maxlength:"1000" %> </div> <div class="form-group"> <div class="form-text-wrap"> <label class="form-text">ポイント3</label> <span class="indispensable">必須</span> </div> <%= f.text_area :point3, class:"form-default", id:"cooking_point3", placeholder:"例:仕上げは「とろみが出るまで弱火で約5分」カレールーが溶けたら、火をつけ、時々まぜながら、弱火で約5分煮込み、とろみがついたら出来上がりです。", rows:"5" ,maxlength:"1000" %> </div> <div class="form-group"> <div class='form-text-wrap'> <label class="form-text">制作時間</label> <span class="indispensable">必須</span> </div> <%= f.text_area :production_time, class:"input-default", id:"cooking_production_time", placeholder:"例:30~40分", maxlength:"15" %> </div> <div class='register-btn'> <%= f.submit "投稿" ,class:"register-green-btn" %> </div> <% end %>
クッキングモデルです class Cooking < ApplicationRecord has_many :comments belongs_to :user has_many_attached :images end
一覧画面のビューです <div> <% if @cooking.images.attached? %> <% @cookings.images.each do |image| %> <%= image_tag image.variant(resize: "150x150") %> <% end %> <% end %> </div>
クッキングコントローラーです class CookingsController < ApplicationController def index @cookings = Cooking.all end def new @cooking = Cooking.new end def create @cooking = Cooking.new(cooking_params) if @cooking.save redirect_to root_path else render :new end end private def cooking_params params.require(:cooking).permit(:cooking_name, :material, :recipe, :point1, :point2, :point3, :production_time, images:[]).merge(user_id: current_user.id) end end

仮説として
<% if @cooking.images.attached? %>
を追加しましたがうまくいきませんでした。どなたかお願いします

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

<% if @cooking.images.attached? %> <% @cookings.images.each do |image| %>

@cookingなのか@cookingsなのかを確認した方がよいでしょう。

投稿2021/04/21 06:06

asm

総合スコア15147

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sk-

2021/04/26 09:46

ありがとうございます。 無事解決できました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問