2012-01-19 8 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

나는 qustion이 바뀌면 새로운 질문이 추가되었다는 인상을 받았다. –

답변

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

render : nothing => true – piam