2016-08-02 3 views
0

Я пишу Rails API с помощью ActiveModel :: Serializers. Я следую спецификации JSON API и хотел бы включить некоторые данные о current_user для авторизации и аутентификации в ключе верхнего уровня ответа meta. С ActiveModel :: сериализаторы, верхнего уровня метаинформацию указывается следующим образом:Как создать параметры по умолчанию для всех вызовов рендеринга контроллера

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

Но я хотел бы, чтобы эта информация доступна на всех ответов JSON. Очень сложно определить эту информацию каждый раз, когда я звоню render в каждом из моих контроллеров.

Есть ли способ, что я могу передать meta: опцию всех контроллера моего визуализируют звонки по умолчанию, скажем, где-то в моем ApplicationController или что-то?

ответ

0

Создать размораживание и добавить к before_action в контроллер приложения

Это может работать для вас

Создание этого определения в контроллере приложения

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

Можете ли вы дать пример кода? Поскольку я думал о том, чтобы делать что-то подобное, по существу, метод персонализированного рендеринга, но такого рода поражения, о которых я просил, что не нужно было менять результирующие контроллеры api. – Xavier

Смежные вопросы