2016-05-17 69 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) 

然后你可以检查这个变量,只是把它里面渲染