jQuery tokeninput跨多个字段进行搜索

Ben*_*Ben 2 jquery autocomplete ruby-on-rails-3

我安装了JQuery令牌输入插件. https://github.com/loopj/jquery-tokeninput 自动完成工作正常,但我遇到了多个模型属性的搜索情况.例如,我有一个药物模型,模型属性包括名称和活性成分

我正在使用meta_where gem来搜索多个字段,并且它正常工作; 检查json输出显示我的Drug.where()方法返回正确的结果行.但是,在前端,jQuery只使用药物名称填充自动完成框.如何让jQuery在自动完成框中显示多个模型属性?理想情况下,我想在自动完成下拉列表中显示类似"model.name(model.active_ingredient)"的内容.现在,jQuery tokeninput正在获取正确的行,但只显示名称.如何显示模型的其他属性?

谢谢

rad*_*sch 6

你可以将json的名称和active_ingredient结合起来,因为你可以使用的就是名字:"Aspirin(Mentol)"

当你从控制器返回时,将它分开,就像你需要它一样.

(在你的药物模型中)

def fullname
  "#{name} (#{active_ingrdient})"
end
Run Code Online (Sandbox Code Playgroud)

您只需要使用您的fullname属性在json fill中设置name:参数

format.json do
  render :json => @drugs.map { |drug| drug.as_json(:only => :id, :methods => :name) }
end
Run Code Online (Sandbox Code Playgroud)

手动设置:

format.json do
  render :json => @drugs.map { |drug|  {:id => drug.id, :name => drug.fullname} }
end
Run Code Online (Sandbox Code Playgroud)

希望能进一步帮助你