イベントを編集するためにユーザーのアクセスを制限する必要があります。そのため、作成者だけがこれを行うことができます。イベントの著者は、その行で決定されます。私のrails3 + mongoidアプリケーションでCanCanロールでDevise認証を使用しようとしていますが、 "未定義メソッド"エラーのCanCan能力結果のDevise "current_user"メソッド
<%= f.hidden_field (:author, :value =>current_user.email) %>
だから、今カンカンの能力ファイルに私はこのコードを使用しようとしています:
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new
if user.role? :admin
can :manage, :all
else
can :read, :all
end
if
user.role?(:normal)
can :create, Event
can :update, Event do |event|
event.try(:author) == current_user.email
end
can :create, Comment
can :update, Comment do |comment|
comment.try(:author) == current_user.email
end
end
end
エンド
をしかし、これは私を結果このエラー:
undefined local variable or method `current_user' for #
は、私は
を変更しようとしましたcan :update, Event do |event|
event.try(:author) == current_user.email
event.try(:author) == Devise.current_user.email
から
が、それは、このエラーので
undefined method `current_user' for Devise:Module
となり、私は何をすべきと私はability.rbから `CURRENT_USER」メソッドのためにどのように呼び出すことができますか?あらゆるヒントを事前にありがとう。