children of childrens?

Hi all!

I'm working on a role based auth system. Users have roles, roles have role_items which enable access to a controller/action pair. So:

User -has_and_belongs_to_many :roles

Role -has_and_belongs_to_many :users -has_many :role_items

RoleItem -belongs_to :role

so, using "user = User.find(1)", I can access his roles on "user.roles" and do something like "user.roles.each do |role|" to go trough all roles a given user has. I would like to know if I can go 2 levels down and do something like "user.roles.role_items.each do | role_item|". This would help me simplify this:

    user.roles.each do |role|       role.role_items.each do |role_item|         if role_item.controller == params[:controller] and role_item.action == params[:action]           auth = true;         end       end     end

I tried doing that but rails told me that "role_items" was not defined for "user.roles".

Also, if you have any tip on the whole role based auth system, I would love to hear your thoughts.

Thanks!