我有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
访问主题名称值的正确方法是什么?
三江源!
答案 0 :(得分:3)
仅仅因为store.theme是零。一个有用的功能是检查。如果你这样做:
<%= store.inspect %>
你会看到theme_id是零。