Subscription model

I’m curious if anyone has any examples they would like to share on how to implement tiered subscriptions. I’ve seen a few methods myself, but I’d like to know how others are doing it.

I’ve seen

User has_many :subscriptions
User has_one :current_subscription

I’ve also seen the subscription info stored as a hash. I don’t like that as much, but it is quick and dirty.

What I am really interested in is how you check for permissions? Controller level? Model level?

I’d appreciate any insight you have to offer. Thanks in advance!