我有以下结构:
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>的未定义方法"hobby_name"
我以为我有这种联想是对的,但这个错误让人困惑。。。你能帮我找个人吗?哪里有问题?
您必须指定关系,您的对象没有名为hobby_name的属性,它与多个爱好有关联,每个爱好都有一个名为hobby_name 的属性
因此:
<% item.hobbies.each do |h| %>
<%= h.hobby_name %>
<% end %>