NilClass的未定义方法`model_name':尝试在我的数据库中创建记录时的类

时间:2012-05-04 18:18:10

标签: ruby-on-rails ruby-on-rails-3 twitter-bootstrap

我的Rails应用程序出了问题。

当我尝试在client表格中创建新的clients时,我会收到此错误=> undefined method model_name for NilClass:Class

它告诉我错误出现在第2行的展示视图中。

1: <%- model_class = @client.class -%>
2: <h1><%=t '.title', :default => model_class.model_name.human %></h1>
3: 
4: <p>
5:   <strong><%= model_class.human_attribute_name(:name) %>:</strong><br>

继承我的节目观点..

<%- model_class = @client.class -%>
<h1><%=t '.title', :default => model_class.model_name.human %></h1>

<p>
  <strong><%= model_class.human_attribute_name(:name) %>:</strong><br>
  <%= @client.name %>
</p>
<p>
  <strong><%= model_class.human_attribute_name(:detail) %>:</strong><br>
  <%= @client.detail %>
</p>
<p>
  <strong><%= model_class.human_attribute_name(:more_detail) %>:</strong><br>
  <%= @client.more_detail %>
</p>
<p>
  <strong><%= model_class.human_attribute_name(:more_details) %>:</strong><br>
  <%= @client.more_details %>
</p>

<div class="form-actions">
  <%= link_to t('.back', :default => t("helpers.links.back")),
              clients_path, :class => 'btn'  %>
  <%= link_to t('.edit', :default => t("helpers.links.edit")),
              edit_client_path(@client), :class => 'btn' %>
  <%= link_to t('.destroy', :default => t("helpers.links.destroy")),
              client_path(@client),
              :method => 'delete',
              :confirm => t('.confirm', :default => t("helpers.links.confirm", :default => 'Are you sure?')),
              :class => 'btn btn-danger' %>
</div>

这是我的控制器=&gt;

  

class ClientsController&lt; ApplicationController中

  respond_to :html

  def index
    @clients = Client.all
    respond_with (@clients)
  end

  def new
    @clients = Client.new
    respond_with (@clients)
  end

  def create
    @clients = Client.new(params[:name])
    if @clients.save
      flash[:notice] = "Client successfully created"
    end
    respond_with(@clients)
  end

  def destroy
  @clients = Client.find(params[:id])
  @clients.destroy
  flash[:notice] = "Client has been removed."
  respond_with(@clients)
  end

end

我看不出问题出在哪里了?

我最近安装了rails-twitter-bootstrap gem,但不认为这会影响它。

1 个答案:

答案 0 :(得分:1)

您在控制器中设置@clients的值(最后带有s)并在视图中访问@client变量,即没有{{1 }}。解决这个问题。