Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 呈现JSON多模型+;映射函数_Ruby_Json_Hash_Jquery Autocomplete - Fatal编程技术网

Ruby 呈现JSON多模型+;映射函数

Ruby 呈现JSON多模型+;映射函数,ruby,json,hash,jquery-autocomplete,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 ?

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

我不确定您是如何进行自动完成设置的,但您需要从呈现正确的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响应,考虑使用它来处理对你的转换。