0

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

我想按几个属性进行搜索,例如titleapp_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>'

看起来插件没有分配查询变量。

谁能帮我?

4

1 回答 1

3

希望这会有所帮助: Rails gem rails3-jquery-autocomplete:如何查询多个字段

该错误意味着Eclaim.search_by_number()在没有任何参数的情况下调用。确实比较好奇。让我知道上面的链接是否可以帮助您解决此问题。

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

更新:在你的控制器中试试这个,调整:term

def get_autocomplete_items(parameters)
   super(parameters)
   items = Eclaim.search_by_number(params[:term])
end
于 2012-06-20T16:41:35.820 回答