前提・実現したいこと
画像投稿用フォームの作成
発生している問題・エラーメッセージ
NoMethodError in Todolists#new
undefined method `image_attachment_definition' for nil:NilClass
image_attachment_definitionと呼ばれるメソッドが何を指しているのかわかりません…。
"image"がDBから引き出せていないということでしょうか。
↓エラー
<%= form_with model: @list, url:'/todolists', local:true do |f| %>
<%= f.attachment_field :image %>
該当のソースコード
ruby
1```<コントローラ> 2 3class TodolistsController < ApplicationController 4 def new 5 @list = List.new 6 end 7 8 def create 9 list = List.new(list_params) 10 redirect_to todolist_path(list.id) 11 end 12 13 def index 14 @lists = List.all 15 end 16 17 def show 18 @list = List.find(params[:id]) 19 end 20 21 def edit 22 @list = List.find(params[:id]) 23 end 24 25 def update 26 list = List.find(params[:id]) 27 list.update(list_params) 28 redirect_to todolist_path(list.id) 29 end 30 31 32 private 33 34 def list_params 35 params.require(:list).permit(:title, :body, :image) 36 end 37end 38 39<ビュー> 40 41<h1>新規投稿</h1> 42 43**<%= form_with model: @list, url:'/todolists', local:true do |f| %>** ←エラー箇所 44 45<h4>タイトル</h4> 46<%= f.text_field :title %> 47<h4>本文</h4> 48<%= f.text_area :body %> 49<h4>画像</h4> 50 51**<%= f.attachment_field :image %>**←エラー箇所 52 53<%= f.submit '投稿' %> 54<% end %> 55 56<モデル> 57 58class List < ApplicationRecord 59 attachment :image 60end 61 62<ジェム> 63 64gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] 65gem "refile", require: "refile/rails", github: 'manfe/refile' 66gem "refile-mini_magick" 67 68<マイグレーション create lists> 69 70class CreateLists < ActiveRecord::Migration[5.2] 71 def change 72 create_table :lists do |t| 73 t.string:title 74 t.string:body 75 t.timestamps 76 end 77 end 78end 79 80<マイグレーション Add image id to lists> 81 82class AddImageIdToLists < ActiveRecord::Migration[5.2] 83 def change 84 add_column :lists, :image_id, :string 85 end 86end 87 88<ルート> 89 90Rails.application.routes.draw do 91get 'todolists/new' 92 93get "top"=>"homes#top" 94 95post 'todolists' => 'todolists#create' 96 97get 'todolists' => 'todolists#index' 98 99get 'todolists/:id' => 'todolists#show', as: 'todolist' 100 101get 'todolists/:id/edit' => 'todolists#edit', as: 'edit_todolist' 102 103patch 'todolists/:id' => 'todolists#update', as: 'update_todolist' 104end 105 106### 試したこと 107 108<Gem の確認> 109actioncable (5.2.4.4, 5.2.4, 5.0.0) 110actionmailer (5.2.4.4, 5.2.4, 5.0.0) 111actionpack (5.2.4.4, 5.2.4, 5.0.0) 112actionview (5.2.4.4, 5.2.4, 5.0.0) 113activejob (5.2.4.4, 5.2.4, 5.0.0) 114activemodel (5.2.4.4, 5.2.4, 5.0.0) 115activerecord (5.2.4.4, 5.2.4, 5.0.0) 116activestorage (5.2.4.4, 5.2.4) 117activesupport (5.2.4.4, 5.2.4, 5.0.0) 118addressable (2.7.0) 119archive-zip (0.12.0) 120arel (9.0.0, 7.1.4) 121bigdecimal (default: 1.4.1) 122bindex (0.8.1) 123bootsnap (1.4.9) 124builder (3.2.4) 125bundler (default: 1.17.3) 126bundler-unload (1.0.2) 127byebug (11.1.3) 128capybara (3.33.0) 129childprocess (3.0.0) 130chromedriver-helper (2.1.1) 131cmath (default: 1.0.0) 132coffee-rails (4.2.2) 133coffee-script (2.4.1) 134coffee-script-source (1.12.2) 135concurrent-ruby (1.1.7) 136crass (1.0.6) 137csv (default: 3.0.9) 138date (default: 2.0.0) 139did_you_mean (1.3.0) 140domain_name (0.5.20190701) 141e2mmap (default: 0.1.0) 142erubi (1.9.0) 143erubis (2.7.0) 144etc (default: 1.0.1) 145execjs (2.7.0) 146executable-hooks (1.6.0) 147fcntl (default: 1.0.0) 148ffi (1.13.1) 149fiddle (default: 1.0.0) 150fileutils (default: 1.1.0) 151forwardable (default: 1.2.0) 152gem-wrappers (1.4.0) 153globalid (0.4.2) 154http-accept (1.7.0) 155http-cookie (1.0.3) 156i18n (1.8.5, 0.9.5) 157io-console (default: 0.4.7) 158io-like (0.3.1) 159ipaddr (default: 1.2.2) 160irb (default: 1.0.0) 161jbuilder (2.10.1) 162json (default: 2.1.0) 163listen (3.1.5) 164logger (default: 1.3.0) 165loofah (2.7.0) 166mail (2.7.1) 167marcel (0.3.3) 168matrix (default: 0.1.0) 169method_source (1.0.0) 170mime-types (3.3.1) 171mime-types-data (3.2020.0512) 172mimemagic (0.3.5) 173mini_magick (4.10.1) 174mini_mime (1.0.2) 175mini_portile2 (2.4.0) 176minitest (5.14.2, 5.11.3) 177msgpack (1.3.3) 178mustermann (1.1.1) 179mutex_m (default: 0.1.0) 180net-telnet (0.2.0) 181netrc (0.11.0) 182nio4r (2.5.4, 1.2.1) 183nokogiri (1.10.10) 184openssl (default: 2.1.2) 185ostruct (default: 0.1.0) 186power_assert (1.1.3) 187prime (default: 0.1.0) 188psych (default: 3.1.0) 189public_suffix (4.0.6) 190puma (3.12.6) 191rack (2.2.3) 192rack-protection (2.0.8.1) 193rack-test (1.1.0, 0.6.3) 194rails (5.2.4.4, 5.2.4, 5.0.0) 195rails-dom-testing (2.0.3) 196rails-html-sanitizer (1.3.0) 197railties (5.2.4.4, 5.2.4, 5.0.0) 198rake (13.0.1, 12.3.2) 199rb-fsevent (0.10.4) 200rb-inotify (0.10.1) 201rdoc (default: 6.1.0) 202refile-mini_magick (0.2.0) 203regexp_parser (1.8.2) 204rest-client (2.1.0) 205rexml (default: 3.1.9) 206rss (default: 0.2.7) 207ruby2_keywords (0.0.2) 208ruby_dep (1.5.0) 209rubygems-bundler (1.4.5) 210rubyzip (2.3.0) 211rvm (1.11.3.9) 212sass (3.7.4) 213sass-listen (4.0.0) 214sass-rails (5.1.0) 215scanf (default: 1.0.0) 216sdbm (default: 1.0.0) 217selenium-webdriver (3.142.7) 218shell (default: 0.7) 219sinatra (2.0.8.1) 220spring (2.1.1) 221spring-watcher-listen (2.0.1) 222sprockets (4.0.2, 3.7.2) 223sprockets-rails (3.2.2) 224sqlite3 (1.4.2) 225stringio (default: 0.0.2) 226strscan (default: 1.0.0) 227sync (default: 0.5.0) 228test-unit (3.2.9) 229thor (1.0.1) 230thread_safe (0.3.6) 231thwait (default: 0.1.0) 232tilt (2.0.10) 233tracer (default: 0.1.0) 234turbolinks (5.2.1) 235turbolinks-source (5.2.0) 236tzinfo (1.2.7) 237uglifier (4.2.0) 238unf (0.1.4) 239unf_ext (0.0.7.7) 240web-console (3.7.0) 241webrick (default: 1.4.2) 242websocket-driver (0.7.3, 0.6.5) 243websocket-extensions (0.1.5) 244xmlrpc (0.3.0) 245xpath (3.2.0) 246zlib (default: 1.0.0) 247 248refileというファイル名は見つかりませんでした。refile-mini-magicはありましたが…。 249別の名前で保存されているのでしょうか。それともインストールできていないのでしょうか。bundle installコマンドは再度使用しておきました。 250 251<マイグレーションファイルがDBに反映されているか確認> 252rails db:migrate:statusの実行結果 253 254 up 20201028181031 Create lists 255 up 20201029064454 ********** NO FILE ********** 256 up 20201031074252 Add image id to lists 257 258反映はされているようです。 259 260原因箇所がわかりません。処理方法もわかりません。 261教えていただけると助かります。お願いします。
あなたの回答
tips
プレビュー