J'ai deux modèles, utilisateurs et promotions. L'idée est qu'une promotion peut avoir de nombreux utilisateurs, et un utilisateur peut avoir beaucoup de promotions. J'ai également un tableau/modèle promotions_users, sans identifiant propre. Il référence user_id et promotions_idAjouter un enregistrement à une relation has_and_belongs_to_many
class PromotionsUsers < ActiveRecord::Base
end
Alors, comment ajouter un utilisateur à une promotion? J'ai essayé quelque chose comme ceci:
user = User.find(params[:id])
promotion = Promotion.find(params[:promo_id])
promo = user.promotions.new(promo)
Il en résulte l'erreur suivante:
NoMethodError: undefined method `stringify_keys!' for #<Promotion:0x10514d420>
Si au contraire je tente cette ligne: promo = user.promotions.new (promo.id)
Je reçois cette erreur:
TypeError: can't dup Fixnum
Je suis sûr qu'il ya une solution très facile à mes probl em, et je ne cherche pas la solution de la bonne façon.
Merci pour la réponse rapide. Je pensais que j'étais trop compliqué. –
fait << aussi sauvegarder l'association? – Nonconformist
@ Coolguy123 oui, 'collection << (objet, ...)' est un alias de collection.push et collection.concat. Cela déclenche instantanément la mise à jour sql sans attendre l'appel save ou update sur l'objet parent. – stereoscott