0
Grape
でAPIエンドポイントを構築しています。Grape APIを使用している専門家のポリシー_スコープ
私はscope
の下にあります
class JourneyPolicy < ApplicationPolicy
def create?
user && user.identt_id == record
end
class Scope
attr_reader :user, :scope
def initialize(user, scope)
@user = user
@scope = scope
end
def resolve
scope.where(user_id: user.id).latest
end
end
end
そして今、私は私のブドウのリソースにこのpolicy_scope
を使用したい、我々はレールコントローラでpolicy_scope(Journey)
を使用することができますが、私はそれがブドウのエンドポイントでの作業することはできません。
class Journeys < Grape::API
resources :journeys do
get do
@journeys = policy_scope(Journey)
present @journeys, with: Entities::Journey
end
end
end
これは動作していない、と私はpolicy_scope
ためNoMethodError
を取得しています。
私はブドウのポリシーを使用したいと任意の助けをいただければ幸いです:)
注:
私のようなリソースを許可するためにブドウのエンドポイントで動作しているコードの下にあります
をerror!("Unauthorized Access!", 401) unless JourneyPolicy.new(journey, uid).create?
おかげ
を働いていますRailsを使ったことはありませんでしたが、policy_scope()メソッドはRailsにのみ存在すると思います。私は確信していませんが、あなたはJourneyPolicy.new(journey、uid).createを使うべきだと思いますか?代わりに。 – Marlon