4

私はRocketPantsで作成された Rails API に取り組んでいます。JSON シリアライズにはactive_model_serializersを使用し、OAuth- Doorkeeperには使用します。

current_user問題は、ヘルパー メソッド へのアクセスにありclass UserSerializer < ActiveModel::Serializerます。エラー:

NameError (undefined local variable or method `request' for #<UserSerializer:0xb5892118>)

current_userヘルパーは次のスニペットを使用します。

User.find(doorkeeper_token.resource_owner_id) if doorkeeper_token

そしてdoorkeeper_token次のとおりです。

def doorkeeper_token
    methods = Doorkeeper.configuration.access_token_methods
    @token ||= OAuth::Token.authenticate request, *methods
end

私が見つけたように、でrequestアクセス可能なオブジェクトはありませんSerializer。どうすればアクセスできるようになりますか? または、他の方法で実装する必要がありますcurrent_userか?

前もって感謝します

4

2 に答える 2

0

正直なところ、このようなものを実際に使用したことはありませんが、コードとドキュメントを見ると、コントローラーから使用できるように見えますが、ActiveModel::Serializerシリアライザーの属性をcurrent_user介して使用できます。scopeしたがって、シリアライザー内current_userで、たとえば管理者かどうかを確認する必要がある場合は、次のようにします。

if scope.is_admin?
  #your code here
end
于 2013-12-03T20:30:12.070 に答える