2016-05-10 6 views
0
から

に変換しています。うまく動作するフォームがあります。ここに私の部分である:ここではRoR - AJAXへの送信フォームを

<%= form_for @reservation, url: {controller: 'reservations', action: 'create'} do |f| %> 
<div class="row"> 
    <div class="col-sm-8 col-sm-offset-1"> 
    <div class="form-group"> 
     <%= f.text_field :name, class: 'form-control', id: 'name', placeholder: 'Party Name', required: true %> 
    </div> 
    <div class="form-group"> 
     <div class="col-sm-4"> 
     Party Size: 
     </div> 
     <div class="col-sm-6"> 
     1 <%= f.radio_button :party_size, '1'%>&nbsp;&nbsp;&nbsp; 
     2 <%= f.radio_button :party_size, '2'%> 
     </div> 
    </div> 
    <div class="col-sm-4 col-sm-offset-8"> 
     <div class="form-group"> 
     <%= f.submit 'submit', class: 'btn default-btn btn-block' %> 
     </div> 
    </div> 
    </div> 
</div> 

は、コントローラのアクションcreateです:

def create 
    @reservation = Reservation.new(reservation_params) 
    @reservation.customer_id = session[:customer_id] 
    if @reservation.save 
    redirect_to :back 
    else 
    render 'reservations/new' 
    end 
end 

私は現在の部分reservations/formの代わりにrender 'reservations/confirmation'したいと思います。 form_forタグにremote: true,を追加する必要があることはわかっていますが、そこにはまってしまいます。 What &この提出機能をAJAXと連携させるには、どこでJSに書き込む必要がありますか? createアクションに何を追加する必要がありますか?

答えて

1

$.post()でJQueryを送信する必要があります。また、JavaScriptの送信と通常のHTML送信(JavaScript無効の場合)の両方に対応するにはrespond_toを使用する必要があります。

http://guides.rubyonrails.org/working_with_javascript_in_rails.html#server-side-concerns

respond_to do |format| 
    if @user.save 
    format.html { redirect_to @user, notice: 'User was successfully created.' } 
    format.js   {} 
    format.json { render json: @user, status: :created, location: @user } 
    else 
    format.html { render action: "new" } 
    format.json { render json: @user.errors, status: :unprocessable_entity } 
    end 
end