views:

104

answers:

1

In the documentation of cancan it shows how to fetch all accessible records (in http://wiki.github.com/ryanb/cancan/fetching-records) in this way:

@articles = Article.accessible_by(current_ability)

but what is current_ability? I've tried passing the current user which I'm using for authentication and authorization, but I've got this error:

NoMethodError: undefined method `conditions' for #<User:0x1092a3b90>

Any ideas what should I pass to accessible_by or what's wrong here?

A: 

CanCan extends ActionController::Base with the current_ability method (among others), which is the class that your ApplicationController should inherit from. So the example code in your question should work as is.

yjerem
You can also pass in your own ability using an instance of the ability class you've defined. The ability class is the one that include's CanCan::Ability, and you can use it like so: Ability.new(current_user)
Tim Snowhite