渲染JSON多模型+地图功能

时间:2016-01-28 20:29:53

标签: ruby json hash jquery-autocomplete

我正在使用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

1 个答案:

答案 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为您处理转换。