Can anyone explain to me how CanCan's accessible_by works? How does it know what the relationship is between the user and the thing that needs restricting?
It checks the current user against a set of rules described in the abilities initializer which includes CanCan::Ability. When you call accessible_by it checks the rules specifed in the Ability class, and returns the records that the user has access to.
The gem's wiki is very good... here: defining abilities
There is a great railscast about CanCan (made by its creator):
http://railscasts.com/episodes/192-authorization-with-cancan
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With