The generally accepted way of doig this is to start thinking of a membership as a first_class entity.
When you 'sign up', for example, you are creating a membership. Membership.create :user_id => params[:user_id], :group_id => params[:group_id], :joined_on => Date.today, :active => true I have found that there is seldom a reason to take an extra DB hit to grab one or both related objects. In fact, I'd argue that @user = User.find_by_id(1) @group = Group.find_by_id(1) @group.members << @user is a waste of objects and a waste of time. However, if you have both objects already, simply assign them. Membership.create :user => @user, :group => @group, :joined_on => Date.today, :active => true Does that make sense? On Tue, Apr 14, 2009 at 12:24 PM, Bart Zonneveld <[email protected]> wrote: > > Hey list, > > I was wondering on the definitive approach of setting attributes on > the join model of a has_many :through relation. After some googling, I > didn't find a "shortcut" approach to it, so I started tinkering, and > thinking. > Imagine users, groups, and memberships. Would something like this be a > good approach? > > group.members << :user => @user, :role => Role.admin > > If so, I could whip up a patch. If not, please enlighten me as to what > would be a good way to assign those properties. > > cheers, > bartz > > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Core" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/rubyonrails-core?hl=en -~----------~----~----~----~------~----~------~--~---
