【问题标题】:Searchkick Where Clause in Ruby on RailsRuby on Rails 中的 Searchkick Where 子句
【发布时间】:2016-01-18 12:50:56
【问题描述】:

我正在执行搜索并希望显示所有内容,但只搜索特定列,而不是所有列。

我的表由 4 列组成,我只想查询 party 列,在 SQL 中是

select * from rsvp where party like '%search%'

我目前有以下代码,但返回的结果是 search 在四列中的任意一列中

@rsvps = Rsvp.search params[:search], field: [:party], page: params[:page], per_page: 15

我尝试了这段代码

@rsvps = Rsvp.search params[:search], where: {party: params[:search]}, page: params[:page], per_page: 15

还有这个

@rsvps = Rsvp.search "*", where: {party: params[:search]}, page: params[:page], per_page: 15

但是任何一个都不会带来结果。

我怎样才能做到这一点?

谢谢

【问题讨论】:

    标签: sql ruby-on-rails elasticsearch searchkick


    【解决方案1】:

    你几乎做对了,你需要使用fields而不是field

    @rsvps = Rsvp.search params[:search], fields: [:party], page: params[:page], per_page: 15
                                               ^
                                               |
                                          s is missing
    

    【讨论】:

    • 天哪,我现在感觉很笨,哈..谢谢,现在搜索工作正常!
    • 太棒了,如果成功了,我很高兴!魔鬼在细节中;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-29
    • 1970-01-01
    • 1970-01-01
    • 2020-09-25
    • 1970-01-01
    相关资源
    最近更新 更多