Nice, I forgot about that too... On Thu, May 31, 2012 at 2:26 PM, Mohamad El-Husseini <[email protected]> wrote: > I forgot to mention that where() returns an array where as find_by_foo > returns a single object unless there are multiple objects... > > ----- > > Another way would be to change: > > roles = user.roles.find_by_account_id(account.id) > > to > > roles = user.roles.where(account_id: account.id) > > On Thursday, May 31, 2012 1:25:49 PM UTC-4, Mohamad El-Husseini wrote: >> >> Another way would be to change: >> >> roles = user.roles.find_by_account_id(account.id) >> >> to >> >> roles = user.roles.where(account_id: account.id) >> >> On Thursday, May 31, 2012 1:22:42 PM UTC-4, Everaldo Gomes wrote: >>> >>> 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 view this discussion on the web visit > https://groups.google.com/d/msg/rubyonrails-talk/-/o9ZLULIE9hoJ. > > 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.

