ActiveRecord: inverse_of não funciona em has_many: através do modelo de junção em create

Não consigo obterinverse_of para trabalhar em juntar modelos na criação. Não tenho certeza se isso é um bug ou simplesmente não foi implementado como tal. Eu tenho os seguintes modelos:

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 é um atributo virtual do meuchallenge e gostaria de acessá-los nogroup_challenges modelo quando essa associação é criada. Eu não posso fazê-lo funcionar. Aqui está um exemplo:

challenge = Challenge.new :groups => Group.all, :contact_ids => [1,2,3]
# log output => challenge.contact_ids: []

Contudoinverse_of funciona quando os modelos são recarregados

challenge.reload
challenge.group_challenges.first.challenge.contact_ids
# log output => challenge.contact_ids: [1,2,3]

lguém sabe se isso é apenas uma limitação de design de inverse_of ou melhor, um bug na implementaçã

questionAnswers(1)

yourAnswerToTheQuestion