Has_many :through and named_scope

I have the models roles, users and user_roles. The relationship among
them is


user has_many user_roles
user has_many roles, :through => :user_roles


role has_many user_roles
role has_many users, :through => :user_roles


belongs_to :user
belongs_to :role

 Suppose a login user1 has roles [admin, staff] And login user2 has

only one role say [participant] Now how can I check the cases

1)a login user is an admin or staff
2) a login user has_role participant?

  And also I would like to know whether this can be written using

named scopes.(I am totally new to named scopes)

Thanks in advance

user1.roles returns an array of roles.
The array class has a function “include?(obj)” that returns true or

Something like this should work:

Named scopes are not ment for stuff like this.
You can create a function on the user model “is_admin?” for the code
above. That way if how an admin is defined changes, you only need to
update the code in one place.

Better off saying !roles.find_by_name(“admin”).blank?
Saves on SQL

Blog: http://random8.zenunit.com/
Twitter: http://twitter.com/random8r
Learn: http://sensei.zenunit.com/
New video up now at http://sensei.zenunit.com/ real fastcgi rails
deploy process! Check it out now!