Ich habe zwei Modelle, Benutzer und Aktionen. Die Idee ist, dass eine Werbeaktion viele Nutzer haben kann und ein Nutzer viele Aktionen haben kann.Hinzufügen von Datensatz zu einer Beziehung has_and_belongs_to_many
class User < ActiveRecord::Base
has_and_belongs_to_many :promotions
end
class Promotion < ActiveRecord::Base
has_and_belongs_to_many :users
end
Ich habe auch eine promotions_users Tabelle/Modell, ohne ID der eigenen. Es verweist auf Benutzer-ID und Promotions-ID
class PromotionsUsers < ActiveRecord::Base
end
Also, wie füge ich einen Benutzer zu einer Aktion hinzu? Ich habe so etwas wie dies versucht:
user = User.find(params[:id])
promotion = Promotion.find(params[:promo_id])
promo = user.promotions.new(promo)
Diese in der folgenden Fehler führt:
NoMethodError: undefined method `stringify_keys!' for #<Promotion:0x10514d420>
Wenn ich versuche, diese Zeile statt: Promo = user.promotions.new (promo.id)
ich diesen Fehler:
TypeError: can't dup Fixnum
ich bin sicher, dass es eine sehr einfache Lösung, um meine probl ist em, und ich suche einfach nicht nach der richtigen Lösung.
Danke für die schnelle Antwort. Ich dachte, ich würde die Dinge übermäßig komplizieren. –
speichert << auch die Zuordnung? – Nonconformist
@ Coolguy123 Ja, 'Sammlung << (Objekt, ...)' ist ein Alias von collection.push und collection.concat. Dadurch wird sofort sql ausgelöst, ohne auf den Speicher- oder Aktualisierungsaufruf für das übergeordnete Objekt zu warten. – stereoscott