Ich versuche, einen Datensatz innerhalb einer Join-Tabelle aus der Aktion einer Schaltfläche zu erstellen. Ich würde ein Ereignismodell haben und möchte ausgewählte Ereignisse von jedem Benutzer verfolgen.Rails - Hinzufügen von Datensatz zu Join-Tabelle von Controller
Ich habe die HABTM-Beziehung benutzt, da ich wirklich keine zusätzlichen Felder brauche.
User.rb:
has_to_and_belongs_to_many :events
Event.rb:
has_to_and_belongs_to_many :users
Events_Users Migration:
[user_id, event_id, id=>false]
Ich bin auf dem tatsächlichen Schaffung des Datensatzes stecken zu bleiben. Jemand hat mir geholfen, früher mit dem Hinzufügen des Datensatzes in der Konsole:
u = User.find(1)
u.events << Event.find(1)
Nun möchte Ich mag die Aktion als Folge auszuführen, einen Link zu klicken ... Ist das in die richtige Richtung?
def add
@user = User.find(session[:user_id])
@event = Event.find(params[:id])
if @user.events.save(params[:user][:event])
flash[:notice] = 'Event was saved.'
end
end
Sollte ich hinzufügen, eine @user.events.new
irgendwo und wenn ja, wo platziere ich die params von welchem Benutzer und welches Ereignis?
meinen Sie @ user.events << @ event.name ??? – ChrisWesAllen
Nein. Dieser Code macht keinen Sinn, wenn ich Ihre Beschreibung des Problems richtig verstehe. – Gdeglin
Danke für die Vorschläge, ich habe das "<% = link_to image_tag (" grid_heart.gif ",: border => 0),: controller => 'event',: action => 'add_event'%>" auf " 'event',: action => "add"%> "aber ich bekomme immer noch einen Fehler, dass es eine" nicht initialisierte Konstante EventController "gibt. Habe ich die Methode in den falschen Controller gesetzt? –
ChrisWesAllen