2016-10-03 6 views
0

Ich arbeite an einem Projekt, und ich versuche, ein Feedback-System zu implementieren. Es gibt drei Schaltflächen, positiv, neutral und negativ. Wenn der Benutzer auf eine Schaltfläche klickt, wird er gefragt, ob er mehr Feedback abgeben möchte, und er wird zum neuen Feedback-Formular weitergeleitet. Stattdessen möchte ich, dass beim Drücken einer Taste ein Datensatz mit dem Bewertungsfeld des Modells gespeichert wird, das durch die gedrückte Taste festgelegt wird.Erstellen Sie einen Modell-Datensatz, wenn eine Taste gedrückt wird

Dann, wenn ein Benutzer mehr Feedback gibt, werden sie auf die Bearbeitungsseite für dieses Feedback gebracht. Ich bin mir nicht sicher, wie ich das machen soll. Benötige ich ein Javascript auf den Tasten? Oder hat Rails eine Methode, die das tut?

Danke

+0

Was hast du bisher versucht? – spickermann

+0

Ich bin mir nicht sicher, wo ich anfangen soll, wie ich schon sagte, als der Modell-Datensatz erstellt und gespeichert wurde, indem ich zu dem neuen Formular gehe. – user2320239

Antwort

0

für jede Taste Erstellen Sie ein Formular mit einem versteckten Feld. Setzen Sie den versteckten Feldwert auf positiv, neutral oder negativ. Sie versuchen stattdessen, eine Enum hier zu verwenden.

<% form_for :feedback, url: feedback_path do |f| %> 
    <%= f.hidden_field :sentiment, value: 'positive' %></td> 
    <%= submit_tag "Positive" %> 
<% end %> 

<% form_for :feedback, url: feedback_path do |f| %> 
    <%= f.hidden_field :sentiment, value: 'neutral' %></td> 
    <%= submit_tag "Neutral" %> 
<% end %> 

<% form_for :feedback, url: feedback_path do |f| %> 
    <%= f.hidden_field :sentiment, value: 'negative' %></td> 
    <%= submit_tag "Negative" %> 
<% end %> 

Sie könnten die oben genannten in eine einfache Schleife, um es zu trocknen.

+0

Hallo Danke für die Hilfe, obwohl, wenn ich das versuchen, erhalte ich eine Fehlermeldung, dass: Keine Route Streichhölzer {: action => "update",: controller => "Feedback"} erforderlichen Schlüssel fehlt: [: id] Ich nehme an, das bedeutet, es versucht, die Update-Methode anstelle der Create-Methode aufzurufen? – user2320239

+0

Oben ist nur ein Beispiel dafür, wie Sie dies tun. Details finden Sie in der Rails-Dokumentation. Dies sollte helfen: http://guides.rubyonrails.org/form_helpers.html#binding-a-form-to-an-object –

Verwandte Themen