,我有工作安排模型,我想实现搜索功能,它应该是关键字搜索,也就是说,即使你在搜索中键入任何关键字,如果它存在于求职表的db中,它应该显示结果。
目前,我正在使用以下代码,它只匹配一个字段,即公司和类别的名称(如params:category.Following中的),是我的作业控制器/索引操作的tha代码。
if params[:search]
@search_condition = "%" + params[:search] + "%"
@searchresult = Jobplacement.where(['name LIKE ? and category = ?', @search_condition ,params[:category]])
else
@searchresult = ""
end
也在上面的代码中,虽然我已经给出了类别的条件,它不执行properly.When,我确实搜索,它给出了匹配name字段的结果,但是它没有计算参数: condition.it显示所有记录,即使它们不是在params:condition.it:中。
以下是我的就业模式中的字段:
t.string "name"
t.string "designation"
t.string "qualification"
t.integer "years_of_exp"
t.string "location"
t.integer "noofpost"
t.string "jobprofile"
t.string "salaryoffered"
t.string "contactperson"
t.string "employmenttype"
t.text "address"
t.string "city"
t.string "state"
t.string "country"
t.integer "contactno"
t.string "website"
t.text "aboutcompany"
,所以当我在搜索中输入任何关键字时,如果它与任何字段的数据匹配,它应该返回data.How,我可以这样做……如何解决这个参数:类别错误,以及如何进行关键字搜索,以匹配就业模型数据库中的任何记录,而不仅仅是一个字段。
发布于 2012-05-28 06:13:00
查看思狮身人面像,它有您的问题的解决方案,并且有更多的特性,如子字符串搜索、野生字符支持等等。
发布于 2012-05-28 10:25:15
使用squeel http://erniemiller.org/projects/squeel/,您可以简单地这样做:
terms = params[:search].split
Jobplacement.where {name.eq(params[:category]) & (name.like_any(terms) | designation.like_any(terms) | qualification.like_any(terms) <...>) }
https://stackoverflow.com/questions/10780008
复制相似问题