Supponiamo di avere un modello di articolo e nella vista "nuova" dell'articolo ho due pulsanti, "Pubblica" e "Salva bozza".Rails: pulsanti di invio multiplo in un modulo
La mia domanda è come sapere quale pulsante si fa clic nel controller.
Ho già una soluzione ma penso che ci sia un modo migliore. Quello che ho attualmente in uso nella vista è:
<div class="actions">
<%= f.submit "Publish" %>
<%= f.submit "Save Draft", :name => "commit" %>
</div>
Così nel controller, posso usare il params [: commettere] stringa per gestire l'azione.
def create
@article = Article.new(params[:article])
if params[:commit] == "Publish"
@article.status = 'publish'
// detail omitted
end
@article.save
end
Ma penso che l'uso della stringa relativa vista non sia buona. Potresti dirmi un altro modo per realizzare questo?
UPDATE: Poiché questi pulsanti sono nella stessa forma, stanno tutti andando all'azione 'create', e per me va bene. Quello che voglio è gestirlo all'interno dell'azione di creazione, come dare al modello di articolo una colonna di "stato" e contenere "pubblico" o "bozza".
possibile duplicato di [Come posso creare più pulsanti per presentare la stessa forma in Rails?] (Http://stackoverflow.com/questions/3027149/how-do-i-create-multiple-submit- pulsanti-per-stessi-in-forma-in-rotaie) –