Agregue una clase CSS a <% = f.submit%>

Respuestas:

352
<%= f.submit 'name of button here', :class => 'submit_class_name_here' %>

Esto debería hacer. Si recibe un error, es probable que no esté proporcionando el nombre.

Alternativamente, puede diseñar el botón sin una clase:

form#form_id_here input[type=submit]

Intenta eso también.

Srdjan Pejic
fuente
¡Excelente! Gracias Srdjan Una pequeña curiosidad: he intentado usar disable_withestos botones de envío, pero parece que nunca funcionan. ¿Hay alguna razón por la que lo sabes? +1
sscirrus
3
Pruebe con un hash para las opciones: {: class => 'class_name',: disable_with => 'Editing ...'}. Esto irá después del nombre del botón. Debería funcionar, o al menos está documentado así.
Srdjan Pejic
3
Tenga en cuenta que debe pasar explícitamente una cadena ('nombre del botón aquí') como primer argumento submitpara usar el hash: class como en la respuesta anterior. Si no tiene esa cadena, recibirá un mensaje de error.
thewillcole
77
agregar clase sin eliminar el valor predeterminado, responda aquí stackoverflow.com/questions/8811254/…
Naoise Golden
<%= form.submit :class => 'class_name' %>funciona, si no quieres usar el nombre.
141

Puede agregar una declaración de clase al botón de envío de un formulario haciendo lo siguiente:

<%= f.submit class: 'btn btn-default' %> <- Nota: ¡no hay coma!

Si está alterando un _ form.html.erb parcial de un andamio y desea mantener el cambio dinámico del nombre del botón entre las acciones del controlador, NO especifique un nombre 'name'.

Sin especificar un nombre y dependiendo de la acción que se procese el formulario, el botón obtendrá la .class = "btn btn-default"(clase Bootstrap) (o lo .classque especifique) con los siguientes nombres:

  • Actualizar nombre_modelo

  • Crear nombre_modelo
    (donde nombre_modelo el nombre del modelo del andamio)

aloucas
fuente
13
A pesar de tener menos votos que la respuesta seleccionada, esta es la solución que la mayoría de la gente querrá usar.
IAmNaN
3
Esto es lo que estaba tratando de encontrar
Sandeep Garg
1
Útil, y permite agregar un atributo HTML ("id" o "clase", como en el ejemplo) sin cambiar el texto predeterminado del botón generado por Rails.
TK-421
1
En mi opinión, esta es la mejor respuesta porque conserva el comportamiento de asignar texto dinámicamente al botón ("Crear" o "Actualizar") en función de la acción del controlador
sixty4bit
Definitivamente como dijo @ sixty4bit. Debe configurar el texto del botón en los archivos de traducción, de modo que el formulario se pueda reutilizar en diferentes acciones del controlador, es decir, "crear comentario" frente a "actualizar comentario". Vea esta respuesta - stackoverflow.com/a/18255633/5355691
Jarvis Johnson
26

Botón "primario" de Rails 4 y Bootstrap 3

<%= f.submit nil, :class => 'btn btn-primary' %>

Produce algo como:

screen-2014-01-22_02.24.26.png

cwd
fuente
2
En realidad, esto es mejor porque la especificación nildel nombre conserva el comportamiento predeterminado del ayudante donde, si encuentra una variable de instancia para el objeto que se está creando / mostrando, como @person, nombrará el botón en consecuencia (Actualizar Foo o Crear Foo) y también el form_forFormBuilder elige la acción correcta. De esta forma, puede extraer el código del formulario en un parcial y usarlo para mostrar el objeto modelo (si desea usar un formulario para mostrarlo), actualizarlo y crear una nueva instancia también.
Paul-Sebastian Manole
13

Como dice Srdjan Pejic, puedes usar

<%= f.submit 'name', :class => 'button' %>

o la nueva sintaxis que sería:

<%= f.submit 'name', class: 'button' %>
RailsZilla.com
fuente
9

Solución al usar form_with helper

Para aquellos que usan Rails 5.2 con form_withayudante: ¡no agreguen la coma !

<%= f.submit class: 'btn btn-primary' %>

Captura de pantalla sin coma

HTH!

BKSpurgeon
fuente
2

Por defecto, Rails 4 usa el atributo 'value' para controlar el texto del botón visible, por lo que para mantener limpio el marcado, usaría

<%= f.submit :value => "Visible Button Text", :class => 'class_name' %>
benjamin.patch
fuente
0

ambos trabajan <%= f.submit class: "btn btn-primary" %>y <%= f.submit "Name of Button", class: "btn btn-primary "%>

gsumk
fuente