【问题标题】:Form_for with render list of check_boxForm_for 带有复选框的渲染列表
【发布时间】:2018-02-05 08:13:54
【问题描述】:

我在标签上方进行了功能搜索。我想在 form_for 中使用 check_box 渲染所有标签,我将过滤这些标签并使用新参数再次渲染所有项目。

= form_for @tags do |f|
  - @tags.each do |tag|
    f.check_box(#{tag}, "yes")
    f.label_tag "#{tag}"
  f.submit 'Filter'
end

【问题讨论】:

    标签: ruby-on-rails ruby forms checkboxlist


    【解决方案1】:

    我不知道你在问什么,因为你的问题不是很清楚,但试图理解你的问题。如果我理解您的问题,那么您需要在搜索页面上添加带有标签的过滤器,对吗?如果是,请尝试以下步骤。

    为搜索标签创建一个表单,例如

    <%= form_tag search_path, method: :get do %>
       <% for tag in Model.order("name") %> #=> Model means which stored your tags like "Tag"
           <%= check_box_tag("#{tag.name}[]", "#{tag.name}") %> tag.name
           OR
           <%= check_box_tag("tags[]", "#{tag.name}") %> tag.name
       <% end %>
       <%= submit_tag "Filter" %>
    <% end %>
    

    或者如果您需要单独过滤点击链接并保持当前搜索那么

       <% for tag in Model.order("name") %> #=> Model means which stored your tags like "Tag"
           <%= link_to tag.name, request.query_parameters.merge({tag: tag.name}) %>
       <% end %>
    

    点击链接查看下图以保持当前搜索和过滤

    这些都是视图功能,你需要更新你的 SQL 查询。

    我认为这会有所帮助。

    【讨论】:

      【解决方案2】:

      成功了:

      = form_tag({controller: 'searches', action: 'filter'}, method: 'get') do
        ul
          - @tags.each do |tag|
            li
              input type='checkbox' name="tags[]" checked="checked" id="#{tag}" value="#{tag}"
              label_tag for="#{tag}" #{tag}
        button Filter
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-05
        • 2018-06-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-01
        • 2020-02-19
        • 1970-01-01
        相关资源
        最近更新 更多