2016-01-28 24 views
0

我正在使用jquery自動完成類別,搜索兩個模型:用戶和標籤。 在控制器中,是否可以在一個json渲染調用中完成它?當我簡單地查詢其中的一個時,它可以工作,但我想同時做這兩件事。謝謝!渲染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

我不知道你怎麼有你自動完成設置,但你會希望通過渲染正確的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來爲您處理轉換。