提问人:Steven 提问时间:7/4/2023 更新时间:7/4/2023 访问量:46
Ruby:如何将参数传递给 oj_serializers
Ruby: How to pass parameters to oj_serializers
问:
我正在使用 Oj 序列化器:https://github.com/ElMassimo/oj_serializers。
我想知道如何传递一些变量(例如。CurrentCurrent)从控制器到串行器?
例如,控制器:
class AlbumsController < ApplicationController
def index
render json: { albums: AlbumSerializer.many(albums) }
end
end
答:
1赞
Vasily Kolesnikov
7/4/2023
#1
根据文档:
class ApplicationController < ActionController::Base
before_action { Thread.current[:current_controller] = self }
end
class BaseJsonSerializer < Oj::Serializer
def scope
@scope ||= Thread.current[:current_controller]
end
def current_user
@current_user ||= scope&.current_user
end
end
注意:这是一种不好的做法。
评论