我正在开发rails中的搜索功能,我想要一个适用于所有网站的常用搜索方法。为此,我在app控制器中创建了一个方法,它有两个参数,一个是modleName,另一个是fieldsArray。但我无法做到。请帮帮我。
我希望我在模型中设置一个变量,我需要在哪些列上搜索(attr_accessible),然后我需要一个我在视图文件中调用的元素,它会获取所有列带有我在模型中设置的标签和复选框。并且我得到一个结果,其中包含我在搜索框中输入的特定列名称以及我选择的列,列将被多次选中。
请帮忙。
由于
答案 0 :(得分:1)
希望这会有所帮助:
创建一个具有通用搜索方法的实用程序类。
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
我还没有将模型搜索方法包含在内,因为它可以解释该方法应该是什么样的。
如果有帮助,请告诉我