合并两个参数的挑战

时间:2014-07-14 09:56:57

标签: ruby-on-rails url-routing url-parameters

我在子类别的路线中有以下条目**(a.k.a。类型)**页面:

match '/jewellery/:taxon/(:tag)' => 'shop#index', :as => 'shop'

我也在子类别页面上有一组过滤器(类型,材料,电镀等)。所以,考虑一个分类“耳环”。我在这个分类中有以下子类别 - “Danglers”,“Hoops”,“Studs”。 因此,相应的子类别页面是“/ jewellery / earrings / danglers”,“/ jewellery / earrings / hoops”和“/ jewellery / earrings / studs”。

我想要一种功能,如果用户进入子类别页面,则应检查类型过滤器中的相应复选框。所以,如果我去“/ jewellery / earrings / studs”,默认情况下应选中标有“Studs”的复选框。我想允许多种类型选择,因此来自过滤器的输入需要是一个数组。我有以下代码:

            <% Typelabels.each { |label| %>
              <%if filter[:name] == "Type"%>
                <% if (!params["type"].nil? && (params["type"].member? label)) 
                        or (!params[:tag].nil? && params[:tag].gsub(/[+-]/," ") == label.downcase)%>
                  <input type="checkbox" id='<%= label.to_s %>' name="type[]" value="<%= label %>" checked />
                  <label for="<%= label.to_s %>" class="<%= t %>_name_label"><%= label%></label>
                <%else%>
                  <input type="checkbox" id='<%= label.to_s %>' name="type[]" value="<%= label %>"/>
                  <label for="<%= label.to_s %>" class="<%= t %>_name_label"><%= label%></label>
                <%end%>
              <% end %>
              <%}%>

但挑战是,当我取消选中“Studs”(默认情况下已选中“/ jewellery / earrings / studs”)框时,我会被重定向到与tag相同的页面。 params是固定的。

请有人帮帮我

0 个答案:

没有答案