未定义的方法`model_name',Rails

时间:2014-09-05 12:55:50

标签: ruby-on-rails

我正在尝试使用以下方法在home #index页面中实现简单表单:

<%= render "forms/form"%>

表单看起来像这样:

<%= form_for(@form) do |f| %>
  <% if @form.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@form.errors.count, "error") %> prohibited this form from being saved:</h2>

      <ul>
      <% @form.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  <div class="field">
    <%= f.label :defect %><br />
    <%= f.text_field :defect %>
  </div>
  <div class="field">
    <%= f.label :region %><br />
    <%= f.text_field :region %>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

但是当我访问该页面时,我收到了以下错误消息:

undefined method `model_name' for NilClass:Class

首先我虽然是因为我的模型名称也是Form,但后来我检查了Rails 3保留字,但是没有“形式”!

提前致谢!

2 个答案:

答案 0 :(得分:2)

您的@form实例变量的值为nil。你应该在控制器中设置它。

答案 1 :(得分:2)

在家庭控制器中,将索引操作中的实例变量@form设置为: -

def index
  @form = Form.new
end