我试图设计一个购物车。即在线购物的顾客将产品添加到他们的手推车中。
我想直接从我的新动作中创建动作,而无需使用我的参数中的预设值new.html.erb
这是我到目前为止所做的:
@trolley_id += 1
redirect_to :controller => 'trolleys', :action => 'create', :id => @trolley_id, :something => 'else', method: :post
这会将我重定向到我的索引操作
答案 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 %>