Ruby on Rails
Thursday, May 31, 2012
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:
-- 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
<husseini.mel@gmail.com> 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 view this discussion on the web visit https://groups.google.com/d/msg/rubyonrails-talk/-/25k2ylUlcSsJ.
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.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment