2015-04-28 37 views
1

當我試圖添加一個項目到購物車時,它可以工作,但沒有人可以直接看到它,因爲該頁面沒有重新加載。我該如何解決它?如何在操作後重新加載頁面:創建?

這裏是我的order_item_controller:

class OrderItemsController < ApplicationController 

    def create 
    @order = current_order 
    @order_item = @order.order_items.new(order_item_params) 
    @order.save 
    session[:order_id] = @order.id 
    end 

和我的意見/產品,用的form_for:

<%= form_for order_item, remote: true do |f| %> 
     <%= product.firstdescription %> 
     <p class="bonus1">-Durée du cours : <%= product.duration %> minutes</p> 
     <p class="bonus">-<%= product.info %> 
     <p class="bonus">-En préparation</br> 
     <div class="talent"> 
     <%= f.hidden_field :quantity, value: 1, class: "form-control", min: 1, max: 1 %> 
     <%= f.hidden_field :product_id, value: product.id %> 
     <div class="on_precommand"> 
     <p id="old_price"> 
      <del><%= currency_euro product.old_price %></del> 
     </p> 
     <p><%= currency_euro product.price %></p></br> 
     <%= product.tournage %></br> 
     </div> 
     <%= f.submit "Pré-commander", class: "addtocart" %> 
    <% end %> 
+2

爲什麼你會重新加載整個頁面時,你可以修改的'阿賈克斯的DOM:success'事件? – sjagr

回答

2

所有你需要做的是一個簡單的重定向,在行動的末尾添加此行

redirect_to @order 

這將重定向到新訂單的顯示操作。

編輯:

只注意到你正在做一個remote: true要求,所以不是你需要創建例如JS模板create.js.erb,並添加要執行在視圖中添加造秩序的JavaScript,這裏有一個例子:

$('#orders').append('<%= j(render @order) %>') 

coruse這是假設訂單DIV是具有ID #orders

+0

謝謝,但我還沒有任何結果與這種技術 –

+0

我希望推遲我對JS的學習...謝謝你們 –

+0

嘗試它,如果你需要任何幫助評論回來。 –

相關問題