Tutorial :Access CanCan's `can?` method from a model



Question:

You can get the current_user's permissions from a view or controller using can? in this fashion:

  <% if can? :update, @article %>      <%= link_to "Edit", edit_article_path(@article) %>    <% end %>  

How can I access this functionality from a model using this syntax:

user.can?(:update, @article)  


Solution:1

There's a wiki entry at github for this: http://wiki.github.com/ryanb/cancan/ability-for-other-users

You need to change your User model like this:

class User < ActiveRecord::Base    def ability      @ability ||= Ability.new(self)    end    delegate :can?, :cannot?, :to => :ability  end  

Then you can check abilities like this:

user.can?(:update,@article)  

Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »