0

belongs_to :through (これは有効ではないことがわかっています) 関係を設定するにはどうすればよいですか? 例: 会社には多くの部門があります。部門には多くのチームがあります。また、一部のチームは機能横断型であるため、多くの部門にまたがることができます (habtm)。

class Company < ActiveRecord::Base
  has_many :departments
  has_many :teams, through: :departments
end

class Department < ActiveRecord::Base
  belongs_to :company;
  has_and_belongs_to_many :teams
end

class Team < ActiveRecord::Base
  has_and_belongs_to_many :departments
end

チームから会社を取得するにはどうすればよいですか。これを行う良い方法は何ですか?最初のものはうまくいくはずですが、関係としてモデルでそれをやろうとすることはできますか?

class Team < ActiveRecord::Base
  has_and_belongs_to_many :departments

  def company 
    departments.first.company
  end

end

また

class Team < ActiveRecord::Base
  has_and_belongs_to_many: departments

  has_one :company, through: departments  (<-- is this valid?, seems like this should be has_many but that's not right!)
end
4

1 に答える 1

0

あなたが望む関係はすでにそこにあります。すべての部門が同じ会社に属していることがわかっている場合は、次のことができます

my_team.departments.first.company
于 2012-05-24T03:05:55.997 に答える