2011-01-05 17 views
1

Ich möchte ein Formular verwenden, um eine Admin-Seite zu erstellen ... wo gibt es Kontrollkästchen, die das Bild, das der Administrator ausgewählt hat, und dann drei Schaltflächen senden: genehmigen, bearbeiten, löschen.Rails Form mit 3 Submit-Buttons

Ist form_tag der beste Weg, dies zu tun? Wenn nicht, dann, wenn ich nur einfache Schaltflächen verwende, wie kann ich sie verbinden, um Daten aus dem ausgewählten Kontrollkästchen zu sammeln?

Danke ...

Antwort

2

eine Möglichkeit ist, dass Sie ein Formular mit drei Schaltflächen erstellen können. Wenn Sie form_tag verwenden, können Sie drei Schaltflächen erstellen, indem Sie dreimal submit_tag ausführen. Für die submit_tags verwenden Sie das gleiche: Name Parameter, aber unterschiedliche Werte. Überprüfen Sie bei der Formularübergabe, auf welche Schaltfläche geklickt wurde, und führen Sie dann die entsprechende Aktion aus.

Auf diese Weise vermeiden Sie, js zu verwenden, um die Kontrollkästchen mit drei verschiedenen Formularen und so weiter zu teilen.

1

Mit der gleichen Frage habe ich versucht, form_for zu verwenden und es scheint zu funktionieren. Ich habe gerade eine Senden-Schaltfläche für zusätzliche Aktionen hinzugefügt.

= form_for @request do |f| 
    = render 'shared/error_messages', object: f.object 

    = f.label :status 
    = f.text_field :status 

...some more fields 

    = f.submit "Save changes", class: "btn btn-large btn-primary" <--- This is initial button 
    = f.submit "Accept", name: 'accept', class: "btn btn-large btn-primary" 
    = f.submit "Reroute", name: 'reroute', class: "btn btn-large btn-primary" 
    = f.submit "Solve", name: 'solve', class: "btn btn-large btn-primary" 

dann in der Steuerung prüfen Sie, welche Taste gedrückt wurde:

if !params[:accept].nil? 

if !params[:reroute].nil? 

if !params[:solve].nil? 

Namen der ursprünglichen Taste Sie in der Quelle der wiedergegebenen Seite finden. Es ist "commit" für mich.