jQuery tokeninput跨多个字段进行搜索

时间:2011-05-12 22:34:27

标签: jquery ruby-on-rails-3 autocomplete

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

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

由于

1 个答案:

答案 0 :(得分:6)

你可以把json的名字和active_ingredient结合起来, 因为,所有你可以使用的名称是:“阿司匹林(Mentol)”

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

(在您的药物模型中)

def fullname
  "#{name} (#{active_ingrdient})"
end

您只需要使用您的fullname属性

在json fill中设置name:参数
format.json do
  render :json => @drugs.map { |drug| drug.as_json(:only => :id, :methods => :name) }
end

手动设置:

format.json do
  render :json => @drugs.map { |drug|  {:id => drug.id, :name => drug.fullname} }
end

希望能够进一步帮助你