Hi! There are many ways to solve this problem.
One sugestion, maybe not the better: you can use the method kind_of? to see if roles is a Array. roles.kind_of? Array (will return true) Then, you could build your logic upon this. Best Regards, Everaldo On Thu, May 31, 2012 at 2:04 PM, Mohamad El-Husseini <[email protected]> wrote: > 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. > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Talk" group. > To view this discussion on the web visit > https://groups.google.com/d/msg/rubyonrails-talk/-/mORQoYLqDtwJ. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/rubyonrails-talk?hl=en. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

