NoMethodError - nil的未定义方法`name':NilClass

时间:2015-03-18 14:25:04

标签: ruby-on-rails

我试图列出我的Sushis,我有:Name, Price, Type of Sushi列出。问题是我需要按名称显示Type of Sushi而不是ID。我尝试在<%= sushi.tipo_sushi.name %>之前添加<%= sushi.tipo_sushi_id %>但是当我将rails s放入cmd:undefined method "name" for nil:NilClass时,我收到了此消息(当我使用{{1}时未列出}}

/app/views/sushis/index.html.erb:

<%= sushi.tipo_sushi_id %>

应用程序/模型/ sushi.rb:

<% @sushis.each do |sushi| %>
    <%= sushi.name %>
    <%= sushi.price %>
    <%= sushi.tipo_sushi.name %>
    <%= link_to 'Show', sushi %>
    <%= link_to 'Edit', edit_sushi_path(sushi) %>
    <%= link_to 'Destroy', sushi, method: :delete, data: { confirm: 'Are you sure?' } %>
<% end %>

有人能帮助我吗?

1 个答案:

答案 0 :(得分:0)

在命令行中键入rails c,然后键入

TipoSushi.attribute_names

您将看到属于您的TipoSushi表格的属性和列名称数组。

如果TipoSushi.attribute_names.include?(:name)返回false,则表示您的表格中没有此列。

然后您需要运行迁移

rails g migration AddNameToTipoSushi name: string

然后运行

rake db:migrate

然后在模型中确保验证所有字段

class TipoSushi
  validates :name, :price, :presence => true