从连接模型(belongs_to)rails获取属性

时间:2012-12-13 19:28:06

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2

我有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

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

三江源!

1 个答案:

答案 0 :(得分:3)

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

<%= store.inspect %>

你会看到theme_id是零。