Je progresse bien avec ma première application Rails (en utilisant Rails 3). L'interaction MVC se passe bien, mais j'ai des difficultés avec un formulaire qui ne se rapporte pas directement à un modèle. J'utilise form_tag, et dans le cas de succès, tout se comporte bien. Cependant, le traitement des erreurs est quelque peu hostile. Le message d'erreur réel est stocké dans le flash et affiché correctement par layouts/application.html, mais j'aimerais vraiment que le formulaire se souvienne du contenu que l'utilisateur vient de remplir. Mais ce n'est pas le cas: tous les champs réinitialiser à leurs valeurs par défaut. J'adore la façon dont les formes d'actions RESTful sur les objets se souviennent automatiquement de leurs valeurs soumises, et sont surlignées en rouge en cas d'erreurs. Je vais bien sans la surbrillance rouge, mais j'aimerais vraiment que les champs du formulaire conservent les valeurs soumises.Rails: Restauration du contenu d'un formulaire non-modèle qui utilise form_tag
Quelqu'un peut-il conseiller comment faire?
Extraits des dossiers pertinents:
vues/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)
contrôleurs/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
A travaillé super! Merci! – AlexC