0

我有 2 个相关模型。

class Store < ActiveRecord::Base
  attr_accessible :name, :subdomain
  belongs_to  :theme
end

class Theme < ActiveRecord::Base
  attr_accessible :name, :description, :screenshot_attributes
  has_many  :stores
end

一切正常问题是当我尝试以下列方式访问主题的名称时。

<% @stores.each do |store| %>
  <tr>
    <td><%= link_to store.subdomain, store %></td>
    <td><%= store.name %></td>
    <td><%= store.theme.name %></td>
    <td><%= link_to 'Go to Store', root_url(subdomain: store.subdomain) %></td>
    <td><%= link_to 'Edit', [:edit, store] %></td>
    <td><%= link_to 'Destroy', store, confirm: 'Are you sure?', method: :delete %></td>
  </tr>
<% end %>

这是得到错误的行。

    <td><%= store.theme.name %></td>

这是消息:

    undefined method `name' for nil:NilClass

访问主题名称值的正确方法是什么?

谢谢!

4

1 回答 1

3

只是因为 store.theme 是零。一个有用的功能是检查。如果你这样做:

<%= store.inspect %>

你会看到 theme_id 为 nil。

于 2012-12-13T19:36:13.687 回答