我试图显示多对多关系中的值
在我的视图中我呼吁以下
schedule.opponents.name
此代码不显示任何错误,但它只显示“对手”一词
对于我有belongs_to关系的其他方法,这个方法似乎已经显示了我之后的值
任何提示?
class Opponent < ActiveRecord::Base
has_many :schedules
has_many :teams
attr_accessible :name
end
class Schedule < ActiveRecord::Base
has_and_belongs_to_many :opponents
has_many :teams
attr_accessible :location_id, :date, :opponent_id, :time, :for, :against, :event, :team, :home_or_away
答案 0 :(得分:0)
当你进行has_and_belongs_to_many
关系时,你假设n个模型有n个模型。因此,当您执行schedule.opponents
时,您正在检索Opponent
模型的对象和数组,因此,您无法调用该模型的属性。
查看问题的简单方法是在控制台上键入:
schedule.opponents.last.name
答案 1 :(得分:0)
当您执行schedule.opponents
时,您将获得属于schedule
的所有对手的数组。根据您的数据,该数组可能包含零个,一个或多个元素。
试试这个:
<% @opponents = schedule.opponents %>
<% @opponents.each do |opponent| %>
<%= opponent.name %><br />
<% end %>
祝你好运!