Devise と CanCan を使用して Rails アプリケーションを開始しました。記事と 1 対多の関係を持つユーザーがいます。私はCanCanを初めて使用します。これが私がやろうとしていることです:
管理者
- 記事に対して任意のアクションを実行できます
ログインユーザー
- 記事を読んだり作成したりできる
- 自分の記事を編集して破棄できる
ゲストユーザー
- 記事が読める
しかし、CanCan の構文を理解するのに苦労しています。このようなものになると理解しています。
def initialize(user)
user ||= User.new
if user.admin?
can :manage, Article
else
can :read, Article
end
end
しかし、これは管理者とゲスト ユーザー専用です。ユーザーが空のときに新しいユーザー オブジェクトが作成されるため、ゲスト ユーザーとログイン ユーザーを区別する方法がわかりません。コードがこのようなものであることを見てきましたが、can [:edit, :destroy], Article, :user_id => user.id
これが初期化メソッドにどのように適合するかはわかりません。
最後の質問ですが、can :read, Article
ゲストに対してのみ定義すると、読み取りアクションをホワイトリストに登録するなど、作成や更新などの他のアクションがブロックされますか?
どんな助けでも大歓迎です。どうもありがとう!