作成時に結合モデルで作業するためにinverse_of
を取得できません。私はこれがバグか、そのように実装されていないかどうかはわかりません。私は、次のモデルがあります:ActiveRecord:inverse_ofがhas_manyで動作しません:createの結合モデルでthrough
class Challenge < ActiveRecord::Base
has_many :groups, :through => :group_challenges
has_many :group_challenges, :inverse_of => :challenge
attr_accessor :contact_ids
end
class GroupChallenge < ActiveRecord::Base
belongs_to :challenge, :inverse_of => :group_challenges
belongs_to :group, :inverse_of => :group_challenges
before_save :check_challenge
def check_challenge
Rails.logger.debug("challenge.contact_ids: #{challenge.contact_ids}")
end
end
class Group < ActiveRecord::Base
has_many :challenges, :through => :group_challenges
has_many :group_challenges, :inverse_of => :group
end
contact_ids
は私challenge
の仮想属性であり、その関連付けが作成されたとき、私はgroup_challenges
モデルでこれらにアクセスしたいと思います。私はそれを働かせることはできません。ここでは例です:これはちょうどinverse_ofの設計上の制約や、むしろ実装のバグであれば
challenge = Challenge.new :groups => Group.all, :contact_ids => [1,2,3]
# log output => challenge.contact_ids: []
は、しかしモデルが
challenge.reload
challenge.group_challenges.first.challenge.contact_ids
# log output => challenge.contact_ids: [1,2,3]
を再ロードされたときにinverse_of
が作業を行います誰でも知っていますか? 1として
私は同じ問題があります。 – rafamvc