2012-01-19 5 views
0

私は電子メールを送信するためにコントローラに投稿する作業フォームを持っています。フォームの後のアクション

コントローラー:

def contact 
    name = params[:contact][:your_name] 
    message = params[:contact][:your_message] 
    email = params[:contact ][:your_email] 
    Contact.contact_form(message, name, email).deliver 
    redirect_to :back 
end 

フォーム:私はそれだけでページを再読み込みしたよう

redirect_to :back 

と非常に満足していないが

<%= form_for :contact , :url => contact_pages_path(@message), :html => {:method => :put} do |f| %> 
<p> 
<b>Your email:</b><br> 
<%= f.text_field :your_email %> 
<b>Name</b><br> 
<%= f.text_field :your_name %> 
</p> 
<p> 
<b>Message</b><br> 
<%= f.text_area :your_message %> 
</p> 
<p> 

。後で「Thankyou」と言って、ページから離れずにメッセージをフラッシュすることはできますか?メッセージはさえ形で表示される可能性 - あなたのapplication.html.erbテンプレートは、通知/警告の内容をプリントアウトされた場合に「感謝」もちろん

+0

あなたはちょっと質問しましたhttp://stackoverflow.com/questions/8926992/attaching-an-e-mail-form-to-a-controller/8927840#8927840、別の質問を作成しないでくださいより詳細で詳細な回答を得るために詳細な質問。 –

+0

私は印象に残っていましたが、質問が変わったときに新しい質問が追加されました –

答えて

1
redirect_to :back, :notice => "Thank-you" 

が、これはのみ動作します - ので、その後ボックスが言って表示されます。そのためには、次のようなものが必要です:

<% if !notice.nil? || !alert.nil? %> 
     <section id="message" class="message-<%= notice.nil? ? "alert" : "notice" %>"> 
      <div class="row"> 
       <div> 
        <% if !notice.nil? %> 
         <p class="notice"><%= notice %></p> 
        <% end %> 
        <% if !alert.nil? %> 
         <p class="alert"><%= alert %></p> 
        <% end %> 
       </div> 
      </div> 
     </section> 
    <% end %> 
+0

ありがとうございます - メッセージは表示されません。 –

0

私はこれを試してもらえますか?

if Contact.contact_form(message, name, email).deliver 
    flash[:notice] = "mail has been sent successfully." 

どこにでもリダイレクトする必要はないと思います。 お待ちしています。

+0

これは機能しませんでしたか? –

+0

私は他の解決策を見つけるでしょう – piam

+0

レンダリングはどうですか?nothing => true – piam

関連する問題