0
class Ability
include CanCan::Ability

def initialize(user)
user ||= User.new 
if user.admin == 1 #admin
    can :manage, :all
elsif 
  user.id != nil # registred users
  can :read, :all
  can :create, Post
  cannot :manage, User
else
   can :read, :all # guest user (not logged in)
   cannot :manage, User

end

これが私の能力ファイルです。最初に登録されたユーザーを管理者にして、Web ページ全体を編集するすべての権限を与えたいのですが、ユーザーは投稿の管理のみに制限され、ゲスト ユーザーは投稿の読み取りのみが許可されます。ただし、if canを使用する場合は?私のコードでは、管理者には通常のユーザーと同じ量のアクセス権が与えられています。私は何を間違っていますか?

4

1 に答える 1

0

私の仕事でも同じことをしなければなりませんが、会社と一緒です。

私がチェックするすべての会社の作成が最初のものであるかどうか、そうであれば管理者として設定し、それ以外の場合は通常のユーザーとして設定します。

ここif can?では、メニューを非表示にするか表示するかを定義するために使用されます。それだけで、ユーザーは URL を入力してもページにアクセスするので、追加する必要がload_and_authorize_resourceあるため、ユーザーは許可がないというメッセージを受け取ります。

それはあなたが必要とするものですか?=)

于 2013-03-22T12:06:52.087 に答える