Rails: Восстановление содержимого немодельной формы, которая использует form_tag

У меня хорошие успехи с моим первым приложением Rails (использующим Rails 3). Взаимодействие MVC идет нормально, но у меня проблемы с формой, которая не связана напрямую с моделью.

Я использую form_tag, и в случае успеха все работает нормально. Однако обработка ошибок несколько недружелюбна. Фактическое сообщение об ошибке хранится во флеш-памяти и отлично отображается в layout / application.html, но мне бы очень хотелось, чтобы форма могла запоминать содержимое, которое только что заполнил пользователь. Но это не так: все поля сбросить до значений по умолчанию.

Мне нравится, как формы для RESTful-действий с объектами автоматически запоминают отправленные значения и выделяются красным цветом в случае ошибок. Я в порядке без красной подсветки, но мне бы очень хотелось, если бы я мог заставить поля формы сохранять отправленные значения.

Кто-нибудь может посоветовать, как это сделать?

Выдержки из соответствующих файлов:

] views / 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
5
задан AlexC 8 November 2010 в 23:54
поделиться