从两个表和列表中选择数据

时间:2011-06-09 21:15:51

标签: mysql ruby-on-rails-3 join html-table

我有以下结构:

class User < ActiveRecord::Base
  has_many :Hobbies, :dependent => :destroy
  accepts_nested_attributes_for :hobbies, :reject_if => lambda { |a| a[:content].blank? }, :allow_destroy => true
end

class Hobby < ActiveRecord::Base 
  belongs_to :User
end

在我的 Users_controller.rb

  def index
    @data = User.all(:joins => :hobbies)
  end

index.html.erb

  <% for item in @data %>
    <tr>
      <td><%= item.id %></td> #from table Users
      <td><%= item.hobby_name %></td> #from table Hobbies
     </tr>
  <% end %>

这为#User:0x103cf7480&gt;

我认为我的关联是正确的,但是这个错误让人感到困惑......你能帮我一个人,请问哪里可能有问题?

1 个答案:

答案 0 :(得分:1)

您必须指定关系,您的对象没有名为hobby_name的属性,它与多个爱好有关联,并且每个爱好都有一个名为hobby_name的属性

所以:

<% item.hobbies.each do |h| %>
<%= h.hobby_name %>
<% end %>