hey all, I have three tables like this: forum (id,title) usergroup(id,title) forum_perms(usergroup_id,forum_id,read,write,post) is there a way to deal with that kind of relation with rails such as by using has_and_belongs_to_many kind of stuff? thanx in advance Pat --~--~---------~--~----~------------~-------~--~----~ 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-/JYPxA39Uh5TLH3MbocFFw@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 -~----------~----~----~----~------~----~------~--~---
Uhm .... Dont see the HABTM relationship here ?!?>From what you describe (which is not much, i have to guess yourrelations), would think this is what you think of: class ForumPerms ActiveRecord::Base belongs_to :forum belongs_to :usergroup end class Forum ActiveRecord::Base has_many :forum_perms end class Usergroup ActiveRecord::Base has_many :forum_perms def has_access_on(forum,accparams) forumperm = ForumPerm.new(accparams) forumperm.forum = forum forumperm.user = self forumperm.save end end see? no HABTM, just 2 has_many <-> belongs_to and i added a method to the user class to easily add a new permission for a forum to a group: the you can simply do: usergroup = Usergroup(1) # select some group for this example forum = Forum(1) # select some forum for this example @usergroup.has_access_on(forum, {:read => true, :write => false, :post => true } ) what is done in the method can be done "by hand" in the controller too, its just nicer this way ... and maybe there are may be nicer ways, As always: im more a new rails user, and make many mistakes so dont be disappointed if i made some errors... --~--~---------~--~----~------------~-------~--~----~ 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-/JYPxA39Uh5TLH3MbocFFw@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 -~----------~----~----~----~------~----~------~--~---
I''m a little fuzzy on what you need your relationships to do as well. Do you need to establish that a forum has many usergroups and vice versa through the data in forum_perms? In that case, it might benefit you to say: Class Forum ActiveRecord::Base has_many :usergroups, :through => :forum_perms end Class Usergroup ActivRecord::Base has_many :forums, :through => :forum_perms end This would allow :forum_perms to be its own model object, permitting it to store the id''s for each usergroup/forum relationship, as well other columns that contain information pertaining to specific permissions. (HABTM uses a join table which restricts the relationship data to just two sets of foreign keys). For more info on using has_many :through, check out: http://blog.hasmanythrough.com/articles/2006/02/28/association-goodness I could be way off base on whether or not this is what you''re looking for, but it''s a thought. -Bryan Patrick Aljord wrote:> hey all, > I have three tables like this: > forum (id,title) > usergroup(id,title) > forum_perms(usergroup_id,forum_id,read,write,post) > > is there a way to deal with that kind of relation with rails such as by > using has_and_belongs_to_many kind of stuff? > > thanx in advance > > Pat-- 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-/JYPxA39Uh5TLH3MbocFFw@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 -~----------~----~----~----~------~----~------~--~---
On 10/25/06, Patrick Aljord <patcito-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> > hey all, > I have three tables like this: > forum (id,title) > usergroup(id,title) > forum_perms(usergroup_id,forum_id,read,write,post) > > is there a way to deal with that kind of relation with rails such as by > using has_and_belongs_to_many kind of stuff?Do you have the following relationships between your tables? a) Does forum have many usergroups? b) Does usergroup have many forums? The forum_perms looks like the join table with additional attributes associated to break the many-to-many relationship between the other two tables. If so then you need to use has_many :through to deal with this scenario. --~--~---------~--~----~------------~-------~--~----~ 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-/JYPxA39Uh5TLH3MbocFFw@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 -~----------~----~----~----~------~----~------~--~---
On 10/25/06, Bala Paranj <bcparanj-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> > > > > On 10/25/06, Patrick Aljord <patcito-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > hey all, > > I have three tables like this: > > forum (id,title) > > usergroup(id,title) > > forum_perms(usergroup_id,forum_id,read,write,post) > > > > is there a way to deal with that kind of relation with rails such as by using has_and_belongs_to_many kind of stuff? > > > Do you have the following relationships between your tables? > a) Does forum have many usergroups? > b) Does usergroup have many forums? > > The forum_perms looks like the join table with additional attributes associated to break the many-to-many relationship between the other two tables. If so then you need to use has_many :through to deal with this scenario.ok thanx to all. Actually usergroups have many permissions on each forum. So I guess what I should do is: Usergroup has_many :forums, :through => :forum_perms and Forum has_many :usergroups, :through => :forum_perms is that right? thanx in advance Pat --~--~---------~--~----~------------~-------~--~----~ 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-/JYPxA39Uh5TLH3MbocFFw@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 -~----------~----~----~----~------~----~------~--~---