터미널에서 ActionView::Template::Error

2286 단어 루비NoMethodError
오늘은 초보적인 실수로 계속 잡혔습니다

오류 내용


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으로 변경하기 만했습니다.

좋은 웹페이지 즐겨찾기