Rails 3 - Wie erstellt man einen neuen Datensatz von link_to?

8

Ich versuche, eine "Tag" -Funktionalität zu erstellen, die es einem Benutzer ermöglicht, Elemente zu markieren, an denen er interessiert ist. Hier ist mein Modell

%Vor%

Die entsprechende DB-Tabelle enthält die erforderlichen Felder :user_id und :item_id .

In der Liste von :items möchte ich einen Link neben jedem :item , mit dem der Benutzer :item markieren kann. Da ich :user_id und :item_id kenne, möchte ich einen neuen Datensatz :tag erstellen, die ID-Felder festlegen und den Datensatz speichern - alles ohne Benutzereingriff. Ich habe den folgenden Aufruf von link_to versucht, aber kein Datensatz ist in der Datenbank gespeichert:

%Vor%

(Dieser Code befindet sich in einer @item.each do |item| -Anweisung, daher ist item.id gültig.)

Dieser Aufruf von link_to erstellt diese URL:

%Vor%

Dies erzeugt keinen Tag Datensatz in der Datenbank. Hier ist meine Aktion :create in tags_controller

%Vor%

Wie kann ich link_to erhalten, um einen neuen Tag-Datensatz zu erstellen und zu speichern?

    
Don Leatham 28.08.2011, 03:46
quelle

1 Antwort

14

Die Tatsache, dass die generierte URL eine Methode als Parameter hat, impliziert, dass sie ein GET und nicht POST durchführt.

Die link_to-Signatur, die Sie verwenden müssen, ist link_to(body, url_options = {}, html_options = {})

%Vor%

: Methode sollte an html_options übergeben werden und auf url_options ruhen. Dies sollte funktionieren.

    
dexter 28.08.2011, 06:10
quelle