Ruby on Rails has_many à travers problème Array
-
12-09-2019 - |
Question
Je vais avoir des difficultés à ajouter à un Beaucoup Par association en utilisant user_ids
.
Mon modèle de communication ressemble à ceci:
class communication
has_many :recipients
has_many :users, :through => :recipients
end
Dans mon action pour créer le contrôleur de communication que je suis en train d'ajouter manuellement user_ids
à l'objet de communication comme ceci:
@communication = new Communications(params[:communication])
@communication.user_ids << id
logger.debug @communication.user_ids # is empty
Je ne peux pas comprendre pourquoi @communication.user_ids
tableau est vide, même quand je fais un identifiant codé en dur comme ceci:
@communication = new Communications(params[:communication])
@communication.user_ids << 1
logger.debug @communication.user_ids # is still empty!
Je suis toujours obtenir un tableau de @communication.user_ids
vide.
Est-ce que je manque quelque chose avec ma méthode? Tous les conseils pour obtenir ce travail?
Merci d'avance!
La solution
Comme il est un has_many :through
, vous avez besoin peut-être de fournir des objets pleins de telle sorte que la relation peut être créée en douceur. Essayez ceci:
@communication = Communication.new params[:communication]
@communication.users << User.find( 1 )
@communication.user_ids # should be [ 1 ]