2016-05-17 66 views
2

我需要在通過控制器發送JSON響應之前檢查JSON響應。序列化程序將一些字段附加到響應中,我需要檢查哪些將決定我是否在單獨的線程中發送事件/發送電子郵件。在通過控制器發送出去之前,如何檢查JSON響應?在Rails中發送響應之前檢查JSON響應

這是我在我的Rails控制器:

respond_to do |format| 
    format.any(*Version.formats) do 
    render json: stuffs, each_serializer: StuffsSerializer 
    end 
end 

以上只是呈現JSON並立即發送它,而我需要一箇中間步驟,只是檢查stuffs它已經系列化之後。我更喜歡在respond_to塊之上的一行中執行此操作。我怎樣才能做到這一點?

+0

你走這條道路之前,請確保你都知道,這是不是一個好的做法。 「條件」存儲在序列化程序中沒有很好的理由。 – Leito

+0

據我瞭解,你只是想檢查你的東西'渲染樸素:東西' – 7urkm3n

+0

它不會在序列化程序。它在控制器上。序列化器有一個動態返回不同對象的方法。 – Jwan622

回答

1

你可以這樣做:

stuffs_json = ActiveModel::ArraySerializer.new(stuffs, each_serializer: StuffsSerializer) 

然後你可以檢查這個變量,只是把它裏面渲染