【问题标题】:Ransack search by multiple select(checkbox) on check选中时通过多项选择(复选框)进行搜查
【发布时间】:2015-07-23 10:25:10
【问题描述】:

在我的代码中没有显示错误,我正在使用 Ransak 搜索,但我没有得到搜索输出。当我从复选框中检查大小选项时,我想获得输出。如果我点击中号,我想显示所有中号连衣裙,就像所有 请给我一个解决方案

这是我的复选框

这是我的代码

产品/index.html.slim

= search_form_for @product_search, url: shop_index_path do |f| = f.label :size_cont, "Size Available" - StandardSize.all.each do |s| = check_box_tag('product_search[standard_sizes_id_eq_any_cont][]', s.id ) = s.name

这里是我的 ShopController.rb

class ShopController < ApplicationController def index @product_search = Product.ransack(params[:q]) @products = @product_search.result(distinct:true).page(params[:page]).per(8) @product_search.build_sort if @product_search.sorts.empty? end

模型标准尺寸.rb

class StandardSize < ActiveRecord::Base belongs_to :product end

这是我的模特product.rb

class Product < ActiveRecord::Base has_and_belongs_to_many :standard_sizes end

这是我的服务器 Started GET "/shop?utf8=%E2%9C%93&q%5Bname_cont%5D=dress&q%5Bprice_paisas_gteq%5D=&q%5Bprice_paisas_lteq%5D=&product_search%5Bstandard_sizes_id_eq_all%5D%5B%5D=3&commit=Search" for 10.0.2.2 at 2015-07-23 10:12:42 +0000 Cannot render console from 10.0.2.2! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255 Processing by ShopController#index as HTML Parameters: {"utf8"=>"✓", "q"=>{"name_cont"=>"dress", "price_paisas_gteq"=>"", "price_paisas_lteq"=>""}, "product_search"=>{"standard_sizes_id_eq_all"=>["3"]}, "commit"=>"Search"} User Load (0.1ms) SELECTusers.* FROMusersWHEREusers.id= 1 ORDER BYusers.idASC LIMIT 1

【问题讨论】:

    标签: ruby-on-rails ransack


    【解决方案1】:

    除非您已另外配置 Ransack,否则所有搜索参数都应嵌套在 @q 下。我也使用_in 而不是_eq_any_cont 取得了成功。

    替换

    = search_form_for @product_search, url: shop_index_path do |f|
      = f.label :size_cont, "Size Available"
      - StandardSize.all.each do |s|
        = check_box_tag('product_search[standard_sizes_id_eq_any_cont][]', s.id ) 
        = s.name
    

    = search_form_for @q, url: shop_index_path do |f|
      = f.label :size_cont, "Size Available"
      - StandardSize.all.each do |s|
        = f.check_box :standard_sizes_id_in, {multiple: true}, s.id, nil
        = s.name
    

    【讨论】:

    • 再次出现同样的问题`无法从 10.0.2.2 渲染控制台!允许的网络:127.0.0.1、::1、127.0.0.0/127.255.255.255 ShopController#index 处理为 HTML 参数:{"utf8"=>"✓", "q"=>{"name_cont"=>"" , "price_paisas_gteq"=>"", "price_paisas_lteq"=>""}, "standard_sizes_id_in"=>["1"], "commit"=>"Search"} 用户负载 (0.3ms) SELECTusers.* FROMusersWHEREusers.id = 1 ORDER BYusers.idASC LIMIT 1 Order Load (0.3ms) SELECTorders.* FROMordersWHEREorders.user_id= 1 ANDorders.status= 0 LIMIT 1 StandardSize Load (0.2ms) SELECTstandard_sizes.* FROMstandard_sizes``
    • wrong number of arguments (0 for 1..2) ,现在显示此错误
    • 已编辑。如果这不起作用,请发布完整的股份跟踪。 dpaste.com
    • 谢谢。非常感谢,亲爱的......它工作了:)。你真的帮助我摆脱了这个麻烦:)..再次感谢你
    猜你喜欢
    • 1970-01-01
    • 2023-03-08
    • 2015-07-19
    • 1970-01-01
    • 2019-01-18
    • 1970-01-01
    • 2020-02-03
    • 2021-05-08
    • 1970-01-01
    相关资源
    最近更新 更多