Ich versuche eine App zu schreiben, mit der sich Benutzer für Veranstaltungen anmelden können. Jede Veranstaltung hat ihren Besitzer und Nutzer, die an der Veranstaltung teilnehmen möchten. Ich habe Schwierigkeiten, die richtige Zuordnung für Letzteres zu wählen. Ich habe versucht, has_and_belongs_to_many, aber lesen Sie irgendwo, dass es nicht empfohlen, es zu verwenden, also habe ich versucht mit has_many: durch und es scheint nicht zu funktionieren. Dies ist, was ich mit jetzt kam:Welche Rails Association sollte ich verwenden?
class User < ApplicationRecord
has_secure_password
has_many :events, :foreign_key => :owner_id
has_many :event_users
has_many :events, :through => :event_users
end
class Event < ApplicationRecord
belongs_to :user, :foreign_key => :owner_id
has_many :event_users
has_many :users, :through => :event_users
end
class EventUser < ApplicationRecord
has_many :users
has_many :events
end
Und die Registrierung Code sieht wie folgt aus:
def sign_up
user = User.find(session[:user_id])
@event.users << user
end
Dieser Code gibt einen Fehler zurück:
Cannot modify association 'Event#users' because the source reflection class 'User' is associated to 'EventUser' via :has_many.
Könnt ihr mir sagen, Was mache ich falsch und wie mache ich das richtig? Es ist meine erste ernsthafte Rails App und ich möchte sie wirklich richtig schreiben. Danke im Voraus.