2016-10-12 2 views
0

メニューにリンクを追加しようとしましたが、リンクに移動しようとするとタイトルのようにエラーが発生します。私はRailsの初心者ですが、このエラーを理解できません。静的HTMLページを1つ追加してみてください。問題はどこだ?助けてください。メニュー未定義のメソッド `errors 'for nil:NilClass - 静的ページRails

<li><%= link_to "test" , pages_test_path %></li> 

ルート

Test::Application.routes.draw do 
    post "inquiry/create" 
    root :to => 'welcome#index' 
    resources :inquiries 
    get "pages/test" 
    end 

ページコントローラ

class PagesController < ApplicationController 
    def show 
    end 
end 

テストHTML

<!DOCTYPE html> 
<html> 
<body> 

<h1>My First Heading</h1> 

<p>My first paragraph.</p> 

</body> 
</html> 

エラーメッセージ

<% if item.errors.any? %> 
    <div class="alert alert-danger fade in" id="error_messages"> 
     <div id="error_explanation"> 
      <ul class="list-unstyled"> 
       <% item.errors.full_messages.each do |msg| %> 
       <li><%= msg %></li> 
       <% end %> 
      </ul> 
     </div> 
    </div><!--/alert--> 
<% else %> 
    <div id="error_messages" class="hide"></div> 
<% end %> 

答えて

0

アイテムオブジェクトはnilと思われます。これはあなたのコントローラーでは宣言されていません。

コントローラの変数@itemを以下のように宣言します。

@item = Item.find(your_item_id) 

または

item = Item.new(your_params) 
@item = item.save 

すると以下のようなあなたのhtmlを変更します。

<% if @item.errors.any? %> 
    <div class="alert alert-danger fade in" id="error_messages"> 
     <div id="error_explanation"> 
      <ul class="list-unstyled"> 
       <% @item.errors.full_messages.each do |msg| %> 
       <li><%= msg %></li> 
       <% end %> 
      </ul> 
     </div> 
    </div><!--/alert--> 
<% else %> 
    <div id="error_messages" class="hide"></div> 
<% end %> 
+0

回答ありがとうございます。残念ながら、さらにこのエラーが発生します。 – kisiel

+0

あなたは正しいです、私はまだ別の場所に問題がありました。主な問題を解決した後、あなたの答えが本当に助けになりました。ありがとう! – kisiel

関連する問題