从新操作重定向到使用params创建操作

时间:2015-01-28 21:25:27

标签: ruby-on-rails

我试图设计一个购物车。即在线购物的顾客将产品添加到他们的手推车中。 我想直接从我的新动作中创建动作,而无需使用我的参数中的预设值new.html.erb

这是我到目前为止所做的:

@trolley_id += 1 
redirect_to :controller => 'trolleys', :action => 'create', :id => @trolley_id, :something => 'else', method: :post

这会将我重定向到我的索引操作

2 个答案:

答案 0 :(得分:0)

要使用javascript模板执行此操作,它将如下所示:

查看

= form_form Trolley.new, remote: true do
  -# form goes here

远程true将以javascript的形式提交,它将尝试呈现javascript模板。

您的创建操作可以render :create或让Rails自动呈现您的模板。由于它是作为javascript请求进行的,因此Rails将使用格式js。

呈现模板

trolleys / create.js.erb

var html = "<%= j render 'trolley_row', trolley: @trolley %>
$('table.trolleys body').append(html);

答案 1 :(得分:0)

我设法解决了我的问题。我在我的Product_controller#show中创建了一个表单,它将直接进入我的Trolley_controller #create并在我的Trolleys表中创建一个条目

    <%= simple_form_for [@product, @trolley] do |f| %>
        <%= f.input :quantity, collection: 1..12, prompt: "select quantity" %>
        <%= f.input :product_id, :as => :hidden %>
        <%= f.input :user_id, :as => :hidden %>
        <%= f.button :submit, "Add to Basket" %>
 <% end %>