1

タイトルより分かりやすく書いてみます。ユーザーが、次の URL にある個々のウィジェットをすべて表示できるようにしたい:

/widgets/2
/widgets/3
/widgets/45

しかし、ユーザーにインデックス全体を表示させたくありません。

/widgets

コントローラーまたは のビューでこれを確認できることはわかっていますが、これをファイルに追加できるより簡単な方法を探していindexます。showAbility.rb

can :read, Widget

もちろん、これにより、ユーザーもインデックスを表示できるようになります...

4

2 に答える 2

0

それはcancanと一緒でなければなりませんか?そうでない場合は、次のようにコントローラーのインデックスアクションで前フィルターを実行できます。

controller

before_filter :check_user,  :only => [:index]  

def index
  // code
end

def check_user
 if current_user.type==1
  redirect to root_url
 end
end

カンカンでこれはどうですか

アビリティ.rb

cannot :manage, Widget

コントローラ

skip_authorize_resource :only => :show
于 2013-08-14T04:10:10.677 に答える