未定义的方法`错误' for nil:NilClass - Static Pages Rails

时间:2016-10-12 16:57:31

标签: html ruby-on-rails

我尝试在菜单中添加一个简单的html页面,但是当我尝试转到链接时,我会收到标题中的错误。我是Rails中的新手,我无法理解这个错误,我尝试添加一个静态html页面。问题出在哪儿?请帮忙。

在菜单中

    <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 %>

1 个答案:

答案 0 :(得分:0)

似乎项目对象是零。这意味着未在您的控制器中声明。

在控制器中声明变量@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 %>