gpt4 book ai didi

ruby-on-rails - GEM Ransack - 使用 ransack 搜索链接 - Rails 4

转载 作者:行者123 更新时间:2023-12-04 03:41:59 31 4
gpt4 key购买 nike

我是 Rails 的新手,非常感谢您的帮助和建议。

  • 我目前正在使用 gem ransack
  • 在我的架构中,我有一个名为 adverts 的表与列 title & content
  • 我正在尝试通过一个链接创建搜索
  • 我有一个名为类似工作的链接[ <%= link_to 'similar jobs', search_adverts_path(q: {advert_title_eq: @advert.title}), class: "fa fa-plus-square" %> ]
  • 当前在我的应用程序中,当用户点击 similar jobs 时标题为 risk analyst 的广告,它显示带有确切广告标题“风险分析师”的搜索结果,但我想要显示包含“风险”和“分析师”的搜索结果 - 例如,“业务分析师”“风险分析师”“金融分析师”等应该显示在搜索结果列表中,但只显示'风险分析师'

what i want to do is:

  • 当用户查看广告时,例如:风险分析师并点击“类似工作”链接,搜索应该显示标题包含“风险”和“分析师”的广告

adverts_controller.rb

在我的广告 Controller 中,我有以下操作:

  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

浏览量/广告/show.html.erb

<%= link_to 'similar jobs', search_adverts_path(q: {advert_title_eq: @advert.title}), class: "fa fa-plus-square" %>

最佳答案

github 存储库 Ransack link search有类似问题的解决方法。

其中,链接如下:

<%= link_to 'similar jobs', search_adverts_path(q: {title_cont_any: @advert.title.split(' ')}) %>

搜索 Action 如下:

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

关于ruby-on-rails - GEM Ransack - 使用 ransack 搜索链接 - Rails 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33003708/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com