I’m trying to use CanCan to an account scoped application. I wrote this
method in my ability class:
roles = user.roles.find_by_account_id(account.id)
if roles.any? { |role| role.type == "Ownership" }
can :edit, Account
else
can :read, :all
end
The trouble is, “any?” works when “roles” is an array. Sometimes,
however,
user.roles returns only one object any other times my return nil. So
calling roles.any? causes an error. How do I work around this?
My setup is User has_many Accounts through :roles, and vice-versa.