2

has_many :through 関係を介してオブジェクトを追加しようとすると、奇妙な動作が発生します。

私のモデル:

Class Player < ActiveRecord::Base
  has_many :player_to_team_histories
  has_many :team_histories, through: :player_to_team_histories
end
Class TeamHistory < ActiveRecord::Base
  has_many :player_to_team_histories
  has_many :players, through: :player_to_team_histories
end

コード:

>>p = Player.first
>>p.team_histories.count
0
>>p.team_histories.append TeamHistory.create
>>p.team_histories.count
0
>>p.team_histories.push TeamHistory.create
>>p.team_histories.count
1
>>p.team_histories << TeamHistory.create
>>p.team_histories.count
2

append新しく作成TeamHistoryした をteam_histories配列に追加しないのはなぜですか?

Ruby 1.9.2 を使用しています。

アップデート

問題を Github に投稿しました: https://github.com/rails/rails/issues/7364

4

1 に答える 1

1

私が知る限り、appendは ActiveRecord メソッドではありませんが、team_histories. このメソッドが利用可能であるにもかかわらず関連付けを適切に保存できないのは、バグまたは見落としである可能性がありpushます<<

于 2012-08-09T19:31:12.093 に答える