Pregunta

Estoy teniendo problemas para añadir a un Tiene muchos a través de asociación utilizando user_ids.

Mi modelo de comunicación es el siguiente:

class communication
 has_many :recipients
 has_many :users, :through => :recipients
end

En mi acción para crear el controlador de comunicación que estoy tratando de añadir manualmente user_ids al objeto de comunicación de esta manera:

@communication = new Communications(params[:communication])
@communication.user_ids << id
logger.debug @communication.user_ids # is empty

No puedo entender por qué gama @communication.user_ids está vacía, incluso cuando hago un identificador codificado de este modo:

@communication = new Communications(params[:communication])
@communication.user_ids << 1
logger.debug @communication.user_ids # is still empty!

Todavía estoy un conjunto @communication.user_ids vacía.

Me estoy perdiendo algo con mi método? ¿Algún consejo para conseguir este trabajo?

Gracias de antemano!

¿Fue útil?

Solución

Ya que es un has_many :through, puede que usted necesita para abastecer objetos completos de modo que las relaciones se puede crear sin problemas. Prueba esto:

@communication = Communication.new params[:communication]
@communication.users << User.find( 1 )
@communication.user_ids  # should be [ 1 ]
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top