2014-10-09 42 views
0

我想呈現JSON來打印頁面。這是它更新的屬性和渲染視圖進行打印,這樣的方法:如何通過JSON呈現params在視圖中?

class Admin::RequestsController < Admin::ApplicationController 

    def print 
    @request.print = 1 
    respond_to do |format| 
     if @request.save 
     format.json { render json: @request.as_json(only: [:id, :number]) } 
     end 
    end 
    authorize @request 
    end 

end 

這種方式,點擊打印圖標後,將打開的選項來打印新的窗口,但它列出什麼。只有[Object object]

我想這使print.json.builder打印,但它不工作:

json.(@request, :id, :number) 
json.items do |json| 
    json.(@request.items, :item, :request_product) 
end 

我不知道這是否是正確的。

+2

這將有助於瞭解在'@ request'什麼樣的信息和你所期望的JSON的樣子。 – ptd 2014-10-09 15:02:42

回答

0

爲什麼你在做法authorize @request

Ruby隱式返回方法的最後一行,所以你希望你的方法調用是你做的最後一件事。您能否將授權移至第一個方法調用?

如果確實需要在最後,你可以試試這個:

def print 
    @request.print = 1 
    result = nil 
    respond_to do |format| 
     if @request.save 
     result = format.json { render json: @request.as_json(only: [:id, :number]) } 
     end 
    end 
    authorize @request 

    result 
    end 
+0

這是一種行動方法,而不是模型方法 – Fer 2014-10-09 14:05:27

+0

我知道這不是必要的,但我認爲這不應該干涉最終結果。 – marcodamaceno 2014-10-09 14:11:52

相關問題