0

多対多の関係から値を表示しようとしているim

私の見解では、私は次のように呼んでいます

schedule.opponents.name

このコードは「Opponent」という単語を表示しているだけですが、エラーは表示されていません。

私が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
4

2 に答える 2

0

relashionshipを行うときは、has_and_belongs_to_manyn個のモデルからn個のモデルがあると想定しています。したがって、を実行しているときは、モデルschedule.opponentsのオブジェクトの配列を取得しているOpponentため、そのモデルの属性を呼び出すことはできません。
問題を確認する簡単な方法は、コンソールに入力することです。

schedule.opponents.last.name
于 2012-06-22T14:36:45.957 に答える
0

するとschedule.opponents、 に属するすべての対戦相手の配列が得られscheduleます。配列には、データに基づいて 0 個、1 個、または複数の要素が含まれる場合があります。

これを試して:

<% @opponents = schedule.opponents %>
<% @opponents.each do |opponent| %>
  <%= opponent.name %><br />
<% end %>

幸運を!

于 2012-06-22T14:41:22.400 に答える