我想使用form_tag
在当前页面的网址中传递几个参数,但我无法理解正确的语法。
快速解释:我的服装(型号)有很多outfit_items(型号)
每个outfit_item都有available_sizes(outfit_item的属性)。所有这些都是由管理员设置的。
然后在Outfit的显示页面上(例如http://localhost:3000/outfits/7
)我想显示每个outfit_item的可用尺寸,让访问者为每个项目选择他的尺寸并按提交。然后,所选尺寸应显示在URL中。
以下是我在节目视图中的内容:url:
<%= form_tag(@outfit_path, :method=>'post') do %>
<% @outfit.outfit_items.each do |outfit_item| %>
<div class="col-md-2 col-sm-6 col-xs-6">
<%= image_tag outfit_item.item_image.url(:medium) %><br>
<% sizes = outfit_item.available_sizes.split(",") %>
<%= select_tag "size#{outfit_item.category}", "<option>#{sizes[1]}</option><option>#{sizes[2]}</option><option>#{sizes[3]}</option><option>#{sizes[4]}</option>".html_safe, :class => "input-mini select-mini" %><br>
<%= hidden_field_tag "size#{outfit_item.category}", value: outfit_item.category %>
</div>
<% end %>
<%= submit_tag "ok size" %>
<% end %>
当我点击提交
时,我想登陆此网址http://localhost:3000/outfits/7?size1=42&size2=L&size3=S&size4=44
感谢您的帮助
答案 0 :(得分:1)
你可以这样做。希望它有所帮助。
<%= form_tag(@outfit_path, url: your_path(size1: value1, size2: value2, ......) :method=>'post') do %>
答案 1 :(得分:0)
我会这样做:
<%= form_tag(outfit_path(@outfit), :method=>'get') do %>
<% @outfit.outfit_items.each do |outfit_item| %>
<div class="col-md-2 col-sm-6 col-xs-6">
<%= image_tag outfit_item.item_image.url(:medium) %><br>
<% sizes = outfit_item.available_sizes.split(",") %>
<%= select_tag "size#{outfit_item.category}", options_for_select(sizes), :class => "input-mini select-mini" %><br>
<%= hidden_field_tag "size#{outfit_item.category}", value: outfit_item.category %>
</div>
<% end %>
<%= submit_tag "ok size" %>
<% end %>
一些假设:
注意:
outfits_path(@outfit)
通常(来自惯例)是"/outfits/<outfit id>"
,所以这就是我在这里使用的 - 这就是我对会议的期望options_for_select(sizes)
是一种生成大量选项标签的更好方法