Rails,通过ransacker搜索

时间:2016-08-03 06:57:45

标签: sql ruby-on-rails rubygems ransack

我的应用有商店型号

# Table name: shops
#
#  id                             :integer          not null, primary key
#  name                           :string
#  address                        :string

目前,我已经使用以下代码编写了一个代码来搜索商店的ID,名称和地址(完美无缺):

  ransacker :search_name, formatter: proc { |v| v.mb_chars.downcase.to_s } do |parent|
    Arel::Nodes::NamedFunction.new('LOWER',
                                   [Arel::Nodes::NamedFunction.new('concat_ws',
                                                                   [Arel::Nodes.build_quoted(' '), parent.table[:name], parent.table[:address], parent.table[:id]])])
  end

商店的相应视图如下所示:

  = search_form_for @search, remote: true do |f|
    .input-group
      = f.text_field :search_name_cont
      = button_tag(type: 'submit')

控制器:

 def index
   @search = Shop.search(params[:q])    
   @shops = @search.result.page(params[:page])
 end

商店模型也有很多标签。

使用搜索表单时,我希望能够找到一个地址为“伦敦,罗素广场32”的商店,并通过搜索“london shoes”找到名称为“shoes”的标签。

知道如何实现这一目标吗?谢谢!

0 个答案:

没有答案