Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.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 带有复选框的rails模型基搜索_Ruby On Rails_Ruby_Search - Fatal编程技术网

Ruby on rails 带有复选框的rails模型基搜索

Ruby on rails 带有复选框的rails模型基搜索,ruby-on-rails,ruby,search,Ruby On Rails,Ruby,Search,我正在研究rails中的搜索功能,我希望所有站点都有一个通用的搜索方法。为此,我在appcontroller中创建了一个方法,其中有两个参数,一个是modleName,另一个是fieldsArray。但我没能做到。请帮帮我 我想在模型中设置一个变量,在哪些列上我需要像attr_一样进行搜索,然后我需要一个元素,我在视图文件中调用该元素,它会获取所有列以及我在模型中设置的标签和复选框。我在搜索框中输入特定的列名,然后得到一个结果,我选择了哪些列,这些列将是多个选中的 请帮忙 谢谢希望这有帮助: 创

我正在研究rails中的搜索功能,我希望所有站点都有一个通用的搜索方法。为此,我在appcontroller中创建了一个方法,其中有两个参数,一个是modleName,另一个是fieldsArray。但我没能做到。请帮帮我

我想在模型中设置一个变量,在哪些列上我需要像attr_一样进行搜索,然后我需要一个元素,我在视图文件中调用该元素,它会获取所有列以及我在模型中设置的标签和复选框。我在搜索框中输入特定的列名,然后得到一个结果,我选择了哪些列,这些列将是多个选中的

请帮忙

谢谢

希望这有帮助:

创建具有泛型搜索方法的实用程序类

class Util
  # modelName is a string, fields would be an array of strings, keyword is string as well
  # You could either call fire search from here or from individual models

  def search(modelName, fields, keyword)
    query = ""
    fields.size.each_with_index do |field, index|
      query += "#{field} like #{keyword} "
      query += " OR " if index < fields.size
    end

    modelName.constantize.where(query)
    # Or create search method in all ur models which you want to search and 
    modelName.constantize.search(fields, keyword)

   end
 end
我没有包括模型搜索方法,因为它对方法应该是什么样子不言自明


让我知道这是否有帮助

以便用户决定需要启动哪种型号的搜索?正如您所提到的,您将ModelName作为参数。。对吗?不,我的意思是我在搜索方法中使用modelName,我必须在其中的表中查找搜索结果。我会将modelName传递给使用该方法的用户,用户只需选择列并输入他们想要搜索的关键字。假设我在users controller中使用该方法,那么该方法将从users表中获取所有结果,如果我在pages中使用该方法,那么我将传递pages model name,以便该方法从pages表中获取记录。据我所知,如果modelName正确,您可以使用modelName.constantize来获取模型本身。因此,您可以执行类似以下参数的操作[:modelName].constantize.findsearch任何你想要的进一步参考-我如何根据我在模型中声明的模型搜索属性列创建元素,以便我可以在项目中的任何位置使用该元素我只需在模型中设置该属性,并将该元素传递给它,它会自动创建搜索表单。这很好,但我想要带有我在模型可搜索属性中定义的文件的通用视图文件请告诉我如何执行此操作。?这对我有很大帮助1.你的问题很难理解,从这个问题上看,你想要什么还不清楚。你能过来聊天吗。