我安装了JQuery令牌输入插件。 https://github.com/loopj/jquery-tokeninput 自动完成功能正常,但我遇到了多个模型属性的搜索情况。例如,我有一个药物模型,模型属性包括名称和活性成分
我正在使用meta_where gem来搜索多个字段,并且它正常工作;检查json输出显示我的Drug.where()方法返回正确的结果行。但是,在前端,jQuery只使用药物名称填充自动完成框。如何让jQuery在自动完成框中显示多个模型属性?理想情况下,我想在自动完成下拉列表中显示类似“model.name(model.active_ingredient)”的内容。现在,jQuery tokeninput正在获取正确的行,但只显示名称。如何显示模型的其他属性?
由于
答案 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
希望能够进一步帮助你