今日、初歩的なミスでずっと引っかかってしまいました
エラー内容
`NoMethodError undefined method
errors' for nil:NilClass``
↓ターミナル
ActionView::Template::Error (undefined method `errors' for nil:NilClass):
1: <% if model.errors.any? %
2: <div class="error-alert">
3: <ul>
4: <% model.errors.full_messages.each do |message| %>
nil:NilClassから、『クラスがないよ!』
undefined method から『メソッドが未定義なんだが、、、』
というエラーということが考えられます。
原因
views/new.html.erd
</header>
<div class="items-sell-main">
<h2 class="items-sell-title"> 商品の情報を入力 </h2>
<%= form_with model:@items, local: true do |f| %>
<%= render 'shared/error_messages', model: f.object %>
controllers/items_controller.rb
def new
@item = Item.new
end
コントローラーとビューファイルの記述を見ると、
コントローラーは@itemと定義
ビューファイルは@itemsと定義
ここの部分を@itemに統一して、直したら解消されました。
コントローラーに合わせてビューファイルを@itemに変更するだけでした。