Rails 3 rails3-jquery-autocomplete由几个字段搜索

时间:2012-06-20 16:14:46

标签: ruby-on-rails ruby-on-rails-3 autocomplete named-scope

我正在使用 rails3-jquery-autocomplete 插件。

我想通过几个属性进行搜索,例如标题 app_number

我尝试了什么:

模特中的

class Eclaim < ActiveRecord::Base
  scope :search_by_number, ->(query){ 
      (query ? where(["app_number LIKE ?", '%'+ query + '%']) : {})
  }
end
控制器中的

class ClaimsController < ApplicationController
   autocomplete :eclaim, :title,  :extra_data => [:app_number], :scopes => [:search_by_number]
end

但是当我使用自动完成字段时,我收到错误:

ArgumentError (wrong number of arguments (0 for 1)):
  app/models/eclaim.rb:16:in `block in <class:Eclaim>'

看起来这个插件没有提供查询变量。

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:3)

希望这会有所帮助: Rails gem rails3-jquery-autocomplete: How do I query multiple fields

该错误意味着在没有任何参数的情况下调用了Eclaim.search_by_number()。确实很好奇。如果上面的链接有助于您解决此问题,请与我们联系。

请注意,:extra_data仅设置您希望通过JSON响应在自动填充结果中返回的额外属性。

更新:在您的控制器中尝试此操作,调整:term

def get_autocomplete_items(parameters)
   super(parameters)
   items = Eclaim.search_by_number(params[:term])
end