У меня есть static_controller, который отвечает за все статические страницы сайта и работает следующим образом в rout.rb:
map.connect ':id', :controller => 'static', :action => 'show'
У меня есть статическая страница, которая, помимо другой информации, называется контактной формой.
В настоящее время у меня есть contact_controller, который отвечает за вставку контактной информации в базу данных.
В моем файле rout.rb у меня есть:
map.resources :contacts
Моя контактная форма (упрощенная) выглядит так:
<% form_for @contact do |f| %>
<p class="errors"><%= f.error_messages %></p>
<p>
<%= f.label :first_name %>
<%= f.text_field :first_name %>
</p>
<p class="buttons"><%= f.submit %></p>
<% end %>
Который, в свою очередь, подчиняется действию создания моего contacts_controller.
Мое действие создания выглядит так:
def create
@contact = Contact.new(params[:contact])
if @contact.save
flash[:notice] = "Email delivered successfully."
end
redirect_to "about"
end
Проблема в том, что когда я перенаправляю обратно на свою страницу about, сообщения error_message для формы теряются (поскольку сообщения error_messages для формы существуют только для одного запроса, и этот запрос заканчивается после перенаправления).
Как бы я сохранил error_messages и по-прежнему связывал пользователей со статическим url?
Будет ли достаточно сеанса / флэш-памяти (если да, какой код я бы использовал для передачи сообщений об ошибках), или я все делаю неправильно?
Спасибо!