Hi I have the models roles, users and user_roles. The relationship among them is user.r ------- user has_many user_roles user has_many roles, :through => :user_roles role.rb ====== role has_many user_roles role has_many users, :through => :user_roles user_role.rb =======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 Tom -- Posted via http://www.ruby-forum.com/. -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
user1.roles returns an array of roles. The array class has a function "include?(obj)" that returns true or false. Something like this should work: user1.roles.include?(Role.find_by_name(''admin'')) 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. On Apr 7, 1:38 pm, Tom Mac <li...-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote:> Hi > I have the models roles, users and user_roles. The relationship among > them is > > user.r > ------- > user has_many user_roles > user has_many roles, :through => :user_roles > > role.rb > ======> > role has_many user_roles > role has_many users, :through => :user_roles > > user_role.rb > =======> 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 > Tom > -- > Posted viahttp://www.ruby-forum.com/.-- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org 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.
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! On 07/04/2010, at 11:40 PM, Sharagoz <sharagoz-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> user1.roles returns an array of roles. > The array class has a function "include?(obj)" that returns true or > false. > > Something like this should work: > user1.roles.include?(Role.find_by_name(''admin'')) > > 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. > > On Apr 7, 1:38 pm, Tom Mac <li...-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote: >> Hi >> I have the models roles, users and user_roles. The relationship >> among >> them is >> >> user.r >> ------- >> user has_many user_roles >> user has_many roles, :through => :user_roles >> >> role.rb >> ======>> >> role has_many user_roles >> role has_many users, :through => :user_roles >> >> user_role.rb >> =======>> 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 >> Tom >> -- >> Posted viahttp://www.ruby-forum.com/. > > -- > 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org > . > 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.