如何为所有控制器渲染调用创建默认选项

时间:2016-08-02 23:04:11

标签: ruby-on-rails active-model-serializers rails-api

我正在使用ActiveModel :: Serializers编写Rails API。我遵循JSON API规范,并希望在响应的顶级current_user密钥中包含有关meta的一些数据,以进行授权和身份验证。使用ActiveModel :: Serializers,顶级元信息的指定如下:

render json: @posts, meta: { 'current-user': @current_user }

但我想在所有 JSON响应中提供此信息。每次在每个控制器中调用render时,定义此信息都会非常麻烦。

我有没有办法将meta:选项传递给所有默认情况下我的控制器的渲染调用,比如我ApplicationController中的某个地方?或者<? / p>

1 个答案:

答案 0 :(得分:0)

创建一个def并附加到应用程序控制器中的before_action

这可能适合你

在应用程序控制器中创建此def

def append_user_to_json(data)
user = current_user.to_json
data = data.to_json
return data = data+user
end