No puedo obtener inverse_of
para trabajar en la creación de modelos de unión. No estoy seguro si esto es un error o simplemente no se implementó como tal. Tengo los modelos siguientes:ActiveRecord: Inverse_of no funciona en has_many: en el modelo de unión en crear
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
es un atributo virtual de mi challenge
, y me gustaría acceder a estos en el modelo group_challenges
cuando se crea dicha asociación. No puedo conseguir que funcione. He aquí un ejemplo:
challenge = Challenge.new :groups => Group.all, :contact_ids => [1,2,3]
# log output => challenge.contact_ids: []
Sin embargo inverse_of
funciona cuando se vuelven a cargar los modelos
challenge.reload
challenge.group_challenges.first.challenge.contact_ids
# log output => challenge.contact_ids: [1,2,3]
¿alguien sabe si esto es sólo una limitación de diseño de inverse_of o más bien un error en la implementación?
Tengo el mismo problema. – rafamvc