サイト内のすべての静的ページを担当し、routes.rbで次のように機能するstatic_controllerがあります。
map.connect ':id', :controller => 'static', :action => 'show'
私は他の情報の中でそれについて呼ばれる静的なページを持っています、連絡フォームがあります。私は現在、データベースへの連絡先情報の挿入を担当するcontacts_controllerを持っています。私のroutes.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
問題は、アバウトページにリダイレクトすると、フォームのerror_messagesが失われることです(フォームのerror_messagesは1つのリクエストにのみ存在し、そのリクエストはリダイレクト時に終了するため)。error_messagesを保持し、ユーザーをabout staticurlにリンクする方法を教えてください。セッション/フラッシュで十分でしょうか(もしそうなら、エラーメッセージを渡すためにどのコードを使用しますか)、それとも私はこのすべてを間違って行っていますか?
ありがとう!