我正在使用jquery自动完成类别,搜索两个模型:用户和标签。 在控制器中,是否可以在一个json渲染调用中执行此操作?当我只是查询其中一个时,它可以工作,但我想同时做这两个。谢谢!
我目前的代码:
def search
@users = User.order(:name).where("lower(name) LIKE ?", "%#{params[:term].downcase}%")
@tags = Tag.order(:name).where("lower(name) LIKE ?", "%#{params[:term].downcase}%")
respond_to do |format|
format.json {
render json: {
@tags.map { |tag| {:label => tag.name, :value => tag.name, :category => "Tags" } },
@users.map { |user| {:label => user.name, :value => user.username, :category => "Users" } }
}
}
end
end
答案 0 :(得分:0)
我不确定你是如何设置自动完成设置的,但是你想要从渲染正确的json开始
respond_to do |format|
format.json {
render json: {
tags: @tags.map { |tag| {label: tag.name, value: tag.name, category: "Tags" } },
users: @users.map { |user| {label: user.name, value: user.username, category: "Users" } }
}
}
end
如果您正在构建大量json响应,请考虑使用Serializers为您处理转换。