操作后如何重新加载页面:创建?

时间:2015-04-28 15:46:03

标签: ruby-on-rails

当我尝试将项目添加到购物车时,它可以正常工作,但没有人可以直接看到它,因为页面没有重新加载。我该如何解决?

这是我的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 %>

1 个答案:

答案 0 :(得分:2)

您需要做的只是简单的重定向,在操作结束时添加此行

redirect_to @order

这将重定向到新订单的show动作。

编辑:

刚刚注意到您正在执行remote: true请求,因此您需要创建一个js模板create.js.erb,并添加您要执行的javascript以在视图中添加创建的顺序,这是一个例子:

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

这是假设订单div的标识为#orders