CanCanCanを使用して、名前空間でモデルレスのコントローラの権限を確認して確認する正しい方法は何ですか?CanCanCanを使用して、名前空間、モデルレスコントローラを認証する方法は?
ずっとグーグルやWikiを読んだ後、私は現在、これは正しくコントローラを許可されていない
#controllers/namespaces/unattacheds_controller.rb
def Namespaces::UnattachedsController
authorize_resource class: false
def create
# does some stuff
end
end
#models/ability.rb
def admin
can [:create], :namespaces_unattacheds
end
#view/
<%= if can? :create, :namespaces_unattacheds %>
# show a create form to authorized users
<% end %>
を持っています。管理者は条件付き作成フォームを見ることができますが、作成アクションに投稿する権限はありません。
post :create, valid_params
Failure/Error: { it { expect(flash).to have_content "Successfully created" }
expected to find text "Successfully created"
got: "You are not authorized to access this page."
1つの例では、名前空間コントローラ用に別のAbilityクラスを作成することをお勧めします。 https://github.com/CanCanCommunity/cancancan/wiki/Admin-Namespace
これを実現する簡単な方法はありますか?このアプリは多くの名前空間付きコントローラを使用しているため、それぞれのクラスに能力クラスを作成する必要はありません。
Abilityクラスの名前空間コントローラを参照する正しい構文はありますか?
can [:create], Namespaces::Unattacheds
can [:create], :namespaces_unattacheds
can [:create], namespaces/unattacheds
????
'名前空間:: UnattachedsController'は、私が思うに、このクラスではなく、デフです。 –