Rails: восстановление содержимого не модельной формы, которая использует form_tag
Я делаю успехи в своем первом приложении Rails (использующем Rails 3). Взаимодействие с MVC все идет нормально, но у меня возникают трудности с формой, которая не имеет прямого отношения к модели.
Я использую form_tag, и в случае успеха все ведет себя хорошо. Однако обработка ошибок несколько недружественна. Фактическое сообщение об ошибке хранится во флэш-памяти и отображается в виде layouts / application.html, но мне бы очень хотелось, чтобы форма помнила содержимое, которое пользователь только что заполнил. Но это не так: все поля сбросить их значения по умолчанию.
Мне нравится, что формы для RESTful-действий над объектами автоматически запоминают их отправленные значения и выделяются красным, если есть ошибки. Я в порядке без красной подсветки, но мне бы очень понравилось, если бы я мог сделать так, чтобы поля формы сохраняли отправленные значения.
Кто-нибудь может посоветовать, как это сделать?
Выдержки из соответствующих файлов:
просмотров / 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)
Контроллеры / 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