ART*_*Loe 2 ruby-on-rails ruby-on-rails-4
我是铁杆的新手,所以非常感谢你的帮助和建议.
ransackadverts与列title&content<%= link_to 'similar jobs', search_adverts_path(q: {advert_title_eq: @advert.title}), class: "fa fa-plus-square" %>]similar jobs带有标题的广告时risk analyst,它会显示具有确切广告标题"风险分析师"的搜索结果,但我想要的是显示包含"风险"和"分析师"的搜索结果 - 所以示例,"业务分析师","风险分析师","金融分析师"等应该显示在搜索结果列表中,但只显示"风险分析师"我想做的是:
adverts_controller.rb
在我的广告控制器中,我有以下行动:
def search
@userj = current_userj
if params[:q].present? and params[:q][:advert_title_eq].present?
params[:q][:title_cont] = params[:q][:advert_title_eq]
end
@search = Advert.search(params[:q])
@adverts = @search.result(distinct: true)
@active_adverts = @adverts.where(['appdeadline >= ?', Time.zone.today]) #displays adverts with deadline > or = to current date
@active_adverts_count = @active_adverts.count
end
Run Code Online (Sandbox Code Playgroud)
views/adverts/show.html.erb
<%= link_to 'similar jobs', search_adverts_path(q: {advert_title_eq: @advert.title}), class: "fa fa-plus-square" %>
Run Code Online (Sandbox Code Playgroud)
github repo Ransack链接搜索有类似问题的解决方案.
其中,链接如下:
<%= link_to 'similar jobs', search_adverts_path(q: {title_cont_any: @advert.title.split(' ')}) %>
搜索操作如下:
def search
@search = Advert.search(params[:q])
@adverts = @search.result(distinct: true)
end
但是,如果你想以自己的方式解决,只需将搜索操作重构if condition block为
if params[:q].present? and params[:q][:advert_title_eq].present?
params[:q][:title_cont_any] = params[:q][:advert_title_eq].split(' ')
end
| 归档时间: |
|
| 查看次数: |
1553 次 |
| 最近记录: |