Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 4 基于用户复选框选择的动态查询创建_Ruby On Rails 4_Activerecord - Fatal编程技术网

Ruby on rails 4 基于用户复选框选择的动态查询创建

Ruby on rails 4 基于用户复选框选择的动态查询创建,ruby-on-rails-4,activerecord,Ruby On Rails 4,Activerecord,我试图建立一个应用程序,用户可以选择多个复选框。 我需要构建一个动态查询来从数据库中获取数据,但获取错误。 这是我的动态查询控制器代码 if params[:food_type] != nil params[:food_type].each do |food_type| query_string << ' OR ' unless query_string.empty? query_string << 'food_type =

我试图建立一个应用程序,用户可以选择多个复选框。 我需要构建一个动态查询来从数据库中获取数据,但获取错误。 这是我的动态查询控制器代码

if params[:food_type] != nil
      params[:food_type].each do |food_type|
         query_string << ' OR ' unless query_string.empty?
        query_string << 'food_type = ?'
        query_values  << food_type 

     end
   end
     wrev["wrev"]  = SearchResult.where(query_string, query_values)
         @pgresults << wrev
         wrev = {}

    respond_to do |format|
    format.html
    format.json { render json: @pgresults }
您可以将“查询字符串”作为“查询值”的一部分作为一个数组传递,请参见:

如果参数[:食物类型]!=无
参数[:食物类型]。每个do |食物类型|
查询字符串
query_string = String.new
   query_values = []
if params[:food_type] != nil
      params[:food_type].each do |food_type|
         query_string << ' OR ' unless query_string.empty?
        query_string << 'food_type = ?'
        query_values  << food_type 

     end
   end
     query_values.unshift(query_string) #add the string at the beginning of the array
     wrev["wrev"]  = SearchResult.where(query_values) #passing the arrary with the query string and the values as just one array.
         @pgresults << wrev
         wrev = {}

    respond_to do |format|
    format.html
    format.json { render json: @pgresults }