我是铁杆新手。我要做的是设计一个订单系统。它列出了一堆项目,每个项目后跟一个选择框,以便人们可以选择他们想要订购的号码。我的问题是如何使用button_to将此count []数组和相应的项ID从视图传递给控制器。感谢您的任何建议。
<% @items.each do |item| %>
<li>
<%= link_to item.name, item %>
<%= select_tag 'count[]', options_for_select([0,1,2,3,4,5])%>
</li>
<% end %>
<%= button_to 'Place Order', orders_confirm_path, method: :post, params: { ??? } %>
答案 0 :(得分:1)
您可以使用标签多选。
您的视图中的示例。对于可以选择多个ctrl +单击项目:
<%= form_tag orders_confirm_path, method: :post %>
<label>select more than one with ctrl + click at item</label>
<p><%= select_tag :items, Item.all.collect {|item| [item.name, tem.id]}, {prompt: "Select item"}, multiple: true %></p>
<p><%= button_to 'Place Order'%></p>
和你的控制器你可以用这种方式接收参数:
def创建 @order = Order.new(params [:items]) if @ order.save 代码...... 其他 代码...... 结束 端
答案 1 :(得分:0)
你可以使用下面的表格
root=0
pwr=1
check=0
integer=int(input('Enter the number:'))
while(root**pwr<abs(integer)):
while(pwr<6):
if root**pwr==abs(integer):
check=1
print('Root =',root,'or -'+ str(root),'and Power =',pwr)
pwr+=1
root+=1
pwr=1 #<--------------Resetting pwr to 1 inside the outer loop
if check!=1:
print('No such combination exists')
现在您可以在控制器<%= form_tag orders_confirm_path, method: :post do %>
<% @items.each do |item| %>
<%= hidden_field_tag :item_id, value: item.id %>
<li>
<%= link_to item.name, item %>
<%= select_tag 'count[]', options_for_select([0,1,2,3,4,5])%>
</li>
<% end %>
<%= button_to 'Place Order' %>
<% end %>
params[:count]
希望能提供帮助