Estoy haciendo un buen progreso con mi primera aplicación Rails (usando Rails 3). La interacción MVC funciona bien, pero estoy teniendo dificultades con un formulario que no se relaciona directamente con un modelo.Rieles: restauración de contenidos de forma no modelo que utiliza form_tag
Estoy usando form_tag, y en el caso de éxito, todo se comporta bien. Sin embargo, el manejo de errores es poco amistoso. El mensaje de error real se almacena en el flash y se muestra bien por layouts/application.html, pero realmente me gustaría que el formulario pudiera recordar los contenidos que el usuario acaba de completar. Pero no: todos los campos restablecer a sus valores predeterminados.
Me encanta la forma en que se forman las acciones RESTful en los objetos que recuerdan automáticamente sus valores enviados, y se resaltan en rojo si hay errores. Estoy bien sin el resaltado rojo, pero me gustaría mucho si pudiera hacer que los campos del formulario mantuvieran los valores enviados.
¿Alguien puede aconsejar cómo hacer esto?
Extractos de los archivos relevantes:
vistas/cardsets/import.html.erb:
<%= form_tag :action => :import_data, :id => @cardset do %>
...
<%= text_field_tag "separator", "", :maxlength => 1 %>
...
<%= text_field_tag "formatting_line" %>
...etc (more fields)
controladores/cardsets_controller.rb:
# POST /cardsets/1/import_data
def import_data
success, message = @cardset.import_data(params, current_user)
if success
redirect_to(@cardset, :notice => message)
else
flash.now[:error] = message
render :import
end
end
Funcionó de maravilla! ¡Gracias! – AlexC