Actualmente tengo un par de formularios en los que intento cambiar el botón que lo envía en función de si estoy en la edición o acción nueva. Tenía dos formularios creados pero esto olía mal, y ahora estoy usando solo un formulario parcial.Rails 3 - Formularios, Botón de envío personalizado según la acción?
Al final de mi parcial, que tienen algo como esto al final de mis formas:
<p>
<% if controller.action_name == 'new' %>
<%= f.submit "Create", :class => "pink_button"%> or
<% elsif controller.action_name == 'edit' %>
<%= f.submit "Update", :class => "pink_button"%> or
<% end %>
<%= link_to "cancel", :back %>
</p>
esta manera, si estoy creando algunos nuevos, el botón dice "Crear", y si es una actualización que un usuario está intentando completar, el botón dice "Actualizar". Esto funciona muy bien, hasta que se envíe el formulario y la validación falle.
En mi controlador, me estoy poniendo cosas que fallan, así:
def update
@list = current_user.lists.find(params[:id])
if @list.update_attributes(params[:list])
redirect_to list_path(@list), :notice => "List '#{@list.name}' updated."
else
render :action => 'edit'
end
end
Así que la forma es simplemente re-renderizados. El problema es que ya no estoy en la ruta de edición. Esto significa que mi botón de formulario ya no aparece.
¿Existe una convención para lo que estoy tratando de hacer?
Gracias
Gracias Sameer! Usé tu sugerencia de esta manera: <% = f.submit @ chore.new_record? ? "Publica tu tarea": "Actualiza tu tarea",: class => "marginTopBottom"%> –