2013-08-30 2 views
0

나는 Ryan Bates' Railscast #136을 따르며 양식 제출 후 AJAX를 사용하여 div ('# inviteform1')를 부분 ('thankyou')로 대체하려고합니다. 어떤 이유로 폼이 제출 될 때 작동하지 않습니다. 대신 빈 화면이 나타나고 URL은 localhost : 3000/inviterequests로 리디렉션됩니다. 내가 뭘 놓치고 있니?Ajax를 사용하여 레일스에서 ​​부분을 가진 div로 바꾸기

inviterequests_controller

def create 
    @inviterequest = Inviterequest.new(params[:inviterequest]) 

    respond_to do |format| 
    format.js 
    end 
end 

inviterequests/create.js.erb

$("#inviteform1").hide().after('<%= j render("thankyou") %>') 

inviterequests/_form.html.erb이 - 치환 될 DIV 포함

<%= simple_form_for(@inviterequest, html: { class: 'form-horizontal'}) do |f| %> 
    <% if @inviterequest.errors.any? %> 
    <div id="error_explanation"> 
     <h3><%= pluralize(@inviterequest.errors.count, "error") %> prohibited this inviterequest from being saved:</h3> 

    <ul> 
     <% @inviterequest.errors.full_messages.each do |msg| %> 
     <li><%= msg %></li> 
     <% end %> 
    </ul> 
    </div> 
<% end %> 

<!-- INVITE BOX CONTENT --> 

<div class="invitebox"> 
    <div class="invitebox-inner"> 
    <div id="inviteform1"> 
    <br> <br> <br> 
     <h5> INDIAN WEDDING <BR> PLANNING JUST GOT EASIER </h5> 

     <%= image_tag("smalldivider.png") %> 

     <h5> REQUEST AN INVITE </h5> 

     <div class="field"> 
     <%= f.input :email, :placeholder => 'enter your email, please', label: false %> 
     </div> 

     <div class="actions"> 
     <%= f.submit "SUBMIT", class: "btn btn-primary btn-special", remote: true %> 
     </div> 
    </div> 
</div> 
</div> 
<% end %> 
,210

inviterequests/_thankyou.html.erb - 사업부에게 당신이 simple_form_for 대신 f.submitremote: true을 사용해야한다는 것

<div id="thankyou"> 
<br> <br> <br> 
<h3>THANK YOU </h3> 
<h4> We are working hard to launch soon <br> and will be in touch. </h4> 

<%= image_tag("smalldivider.png") %> 

<p class="smallcaps"> <br> SHARE WITH FRIENDS IN THE MEANTIME </p> 

    <div class="socialbuttons"> 
     <div class="twitter"> 
     <%= link_to (image_tag("twitter2.png")), "https://twitter.com/intent/tweet?screen_name=namastewedding&text=is%20making%20Indian%20wedding%20planning%20easy.%20I%20just%20requested%20my%20invitation.%20%23indianwedding%20www.namastewedding.com", :target => '_blank' %> 

     </div> 
     <div class="facebook"> 
     <%= link_to (image_tag("facebook2.png")), "https://www.facebook.com/pages/Namaste-Wedding/359192570873560" %> 
     </div> 
    </div> 
</div> 

LOGS

Started POST "/inviterequests" for 127.0.0.1 at 2013-08-29 22:08:39 -0400 
Processing by InviterequestsController#create as HTML 
Parameters: {"utf8"=>"✓", "authenticity_token"=>"pqDBzdaYKuOfjuVo1ovHvrQJTTrsUptAcQekCn4X+Ho=", "inviterequest"=>{"email"=>"[email protected]"}, "commit"=>"SUBMIT"} 
Completed 406 Not Acceptable in 1ms (ActiveRecord: 0.0ms) 
+1

'f.submit' 대신'simple_form_for'에서'remote : true'를 사용하는 것 같습니다. 예 :'simple_form_for (@inviterequest, remote : true, html : {class : 'form-horizontal'})' – Bigxiang

+0

예! 답변으로 답글을 다시 게시하면 올바른 것으로 표시 할 수 있습니다. – nishacodes

+0

게시했습니다. 감사합니다. :) – Bigxiang

답변

2

를 대체 할 수있는 부분.

<%= simple_form_for(@inviterequest, remote:true, html: { class: 'form-horizontal'}) do |f| %>