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
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 rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe@googlegroups.com.
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 rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

Search Discussions

Discussion Posts

Previous

Follow ups

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 2 of 5 | next ›
Discussion Overview
grouprubyonrails-talk @
categoriesrubyonrails
postedMay 31, '12 at 5:04p
activeMay 31, '12 at 5:42p
posts5
users2
websiterubyonrails.org
irc#RubyOnRails

People

Translate

site design / logo © 2021 Grokbase