I'm using devise and cancan in a Rails 3.2 project. I have an event model with a boolean flag public. If the event is marked as public => true then I want anybody, signed in or not to be able to access the record with
GET /events/:id
If it is marked as public => false then a series of cancan abilities will decide authorization and access to the above resource.
What is the best pattern for achieving this?