Piuttosto cheIl pulsante può generare il tag <button> anziché <input type = "submit" />?
<input type="submit" />
voglio uscita
<button>
utilizzando il metodo button_to (rotaie 3.0.0)
è possibile?
Piuttosto cheIl pulsante può generare il tag <button> anziché <input type = "submit" />?
<input type="submit" />
voglio uscita
<button>
utilizzando il metodo button_to (rotaie 3.0.0)
è possibile?
È possibile sostituire l'helper button_to
in ApplicationHelper
per il rendering di un tag button
. Guarda il codice che button_to
ha già e modificalo per soddisfare i tuoi scopi.
Perché questa risposta è stata respinta? Sembra un suggerimento ragionevole per me? C'è un problema con l'override di button_to? –
@SteveSmith Probabilmente manca l'esempio. – Noz
Inoltre, gli helper che ignorano, più in generale conosciuti come patch per le scimmie, non sono a prova di futuro. Dal momento che questo è un codice di visualizzazione in cui nulla dipende da esso, forse ti importa meno? – Woahdae
io in genere solo attaccare questo nel mio file application_helper.rb:
def button_tag(text, options={})
content_tag(:button, {:type => "submit"}.merge(options)) { text }
end
È quindi possibile chiamare da una visione in questo modo:
button_tag "Save", :class => 'accept'
Immagino che questo sia stato downvoted perché è ora in Rails: http://api.rubyonrails.org/v3.2.13/classes/ActionView/Helpers/FormTagHelper.html#method-i-button_tag – nruth
da quello che posso vedere Rails ha già un helper per generare tag; si chiama button_tag
(anziché button_to
).
così, si potrebbe utilizzare il seguente nel vostro punto di vista, non vedo la necessità di sovrascrivere button_to:
<%= button_tag "Button Text", :class => "btn", :type => "submit" %>
nessuna necessità di sovrascrivere. inoltre, si consiglia di fornire sempre il parametro: type poiché è visualizzato in modo diverso nei vari browser.
Questo non è ciò che 'button_to' fa . –
@ClemensHelm puoi spiegare di più il tuo downvote? Non ho nemmeno menzionato cosa dovrebbe fare Button_to nella mia risposta. Puoi farmi sapere come la risposta è sbagliata o come può essere migliorata? – FireDragon
Penso che ciò che @Clemens Helm sta cercando di dire è che 'button_to' genera un modulo. Il poster originale vuole generare un modulo con un 'button' di tipo submit invece di un tag' input'. – Mohamad
A partire dall'ultima versione di Rails (4.0.2, non sono sicuro delle versioni precedenti) il passaggio di un blocco a button_to richiama la logica di ramo nell'helper che crea un elemento pulsante anziché un input.
Ad esempio, se si voleva fare un 'delete' elemento pulsante Haml, bootstrap & fontawesome (il mio caso d'uso):
= button_to(foo_path(@foo),
class: 'btn btn-sm', method: :delete, remote: true) do
<i class="fa fa-times"></i>
Se si desidera che siano solo sempre elementi dei pulsanti non importa quale , puoi sempre avere il contenuto del tuo pulsante all'interno di un blocco invece del primo argomento. Non sono sicuro di quale sia il trade-off.
Ho appena scoperto che cambiando button_to all'utilizzo di un blocco genera tag pulsante, invece di ingresso:
così:
<%= button_to account_path(@account), data: {confirm: 'Are you sure?'}, method: :delete, class: 'btn btn-default btn-danger' do %>
Inactivate
<% end %>
Genera:
<form method="post" class="button_to" action="/accounts/30">
<div>
<input type="hidden" value="delete" name="_method">
<button type="submit" data-confirm="Are you sure?" class="btn btn-default btn-danger">
Inactivate
</button>
<input type="hidden" value="" name="authenticity_token">
</div>
</form>
Sono troppo pigro per sovrascrivere il metodo button_to, quindi questo ha funzionato per me :) – JustMichael
'button' non è specifico in HTML5, né "input" per i pulsanti deprecati in HTML5. –
In realtà, '
Scusa per la confusione, è più una mia preferenza usare i pulsanti a causa della flessibilità del contenuto e della facilità di stile. Mi piace definire tutti i tag predefiniti, quindi è utile mantenere i pulsanti al di fuori degli input. – Graham