Joshua Muheim
2006-Jan-12 09:49 UTC
[Rails] HABTM with conditional field in relation table
Hi all I have members in my application, and every member can assign other members as buddies. class Member < ActiveRecord::Base # Hat folgende Buddies has_and_belongs_to_many :buddies, :class_name => ''Member'', :join_table => ''members_have_buddies'', :association_foreign_key => ''buddy_id'', :order => ''username'' # Ist Buddy von has_and_belongs_to_many :buddy_of, :class_name => ''Member'', :join_table => ''members_have_buddies'', :foreign_key => ''buddy_id'', :order => ''username'' ... end Now I want to extend this feature, that buddies aren''t automatically allowed, but when a member wants to add somebody as buddy the added member has to give his confirmation first. I added the field accepted to the relation table, now it looks like that: members_have_buddies(member_id, buddy_id, accepted) But how can I implement now, that I have the following...? josh $ ./script/console josh $ m = Member.find(1) josh $ m.buddies # should give an array of only the buddies that have accepted (actually gives a list of all the member''s buddies atm) josh $ m.buddies_waiting_for_acceptance # should give an array of only the buddies that I didn''t accept yet josh $ m.buddies_you_dont_accept # should give an array of buddies of whom you don''t want to be added as buddy josh $ m.buddies_that_dont_accept_you # should give an array of buddies that don''t accept you as buddy I want to have the following code numbers in the accepted field: 0 - waiting for acceptance 1 - accepted 2 - not accepted But now how can i realize this? Should I create again HABTM dependencies using the :conditions key? Or what would you suggest? Thanks a LOT for help. :-) Joshua -- Posted via http://www.ruby-forum.com/.