18

認証にCanCanを使用しています。/app/config/ability.rb で model-action-user ルールを定義し、正常に動作しています。load_and_authorize_resourceこの行を application_controller に追加し、すべて完了しました。

ただし、下にモデルがない多数のビューとコントローラーもあります。たとえば、統計ページを読み込もうとすると、

NameError (uninitialized constant Statistic):
  activesupport (3.2.3) lib/active_support/inflector/methods.rb:229:in `block in constantize'
  activesupport (3.2.3) lib/active_support/inflector/methods.rb:228:in `each'
  activesupport (3.2.3) lib/active_support/inflector/methods.rb:228:in `constantize'
  ...

CanCan がモデル + アクションの代わりにコントローラー + アクションで動作する方法はありますか?

4

4 に答える 4

34

コントローラーで使用authorize_resource :class => falseします。CanCan は、コントローラの名前の能力を自動的にチェックします (記号、単数形、:statisticたとえばStatisticsController)

https://github.com/ryanb/cancan/wiki/Non-RESTful-Controllersを参照してください。

于 2012-06-29T09:57:19.660 に答える
-1

このgem cancacan " https://github.com/piedoom/cancancan "を使用して、gem cancanをレールの新しいバージョンに更新することができます。

于 2018-01-13T13:41:33.647 に答える