Associations problem

Hi all,

I am creating a table that defines permissions to certain group or person.

Classes class Report_membership < ActiveRecord::Base      belongs_to :member, :foreign_key => :member_id, :class_name => 'Person'      belongs_to :member, :foreign_key => :member_id, :class_name => 'Group' end Class Group < ActiveRecord::Base   has_many :report_memberships, :foreign_key => :member_id end Class Person < ActiveRecord::Base   has_many :report_memberships, :foreign_key => :member_id end

This Builds the reverse associations okay, and will display all the groups. If i switch the belongs_to order in the report_membership class then it will display all of the people that I have.

Before I save the record I was going to append to the value a 1 if it was a group or a 0 if it was a person, so the first record of the group would be 11 , and 21 the second and the 1st person would be 10 and the second would be 20.

The only way I can complete it this was is if there is a way I can manually write the sql for options_for_association_conditions method in the helper method, and I haven't found a way to do that.

If there is a known way to do this, different from this, please educate me

White Wizzard

Hi all,

I am creating a table that defines permissions to certain group or person.

Classes class Report_membership < ActiveRecord::Base     belongs_to :member, :foreign_key => :member_id, :class_name => 'Person'     belongs_to :member, :foreign_key => :member_id, :class_name => 'Group' end Class Group < ActiveRecord::Base has_many :report_memberships, :foreign_key => :member_id end Class Person < ActiveRecord::Base has_many :report_memberships, :foreign_key => :member_id end

This Builds the reverse associations okay, and will display all the groups. If i switch the belongs_to order in the report_membership class then it will display all of the people that I have.

Before I save the record I was going to append to the value a 1 if it was a group or a 0 if it was a person, so the first record of the group would be 11 , and 21 the second and the 1st person would be 10 and the second would be 20.

That's a really bad idea. Either have separate person_id/group_id
columns, or use polymorphic associations (which is sort of what you're
cobbling together)

Fred

HI Fred

Yes polymorphic associations would work but do to the work environment I am in, I don' t think it is a good Idea because it hard codes the class strings. My superior Every so often decides that a class name needs to be changed and he doesn't like to modify data that is in existence. When I get something working, It gets uploaded to the server and he goes and reviews all the changes ( I know how bad that is). My solution would be to have the type be a one or a zero but I don't know how to get that to work, as active record does most of the work with polymorphic associations. The other thing that need to worry about is that I am constrained to use Active Scaffold for ALL of the views, with the exception of the login and the home page.

If you know a way to have the type be a integer that I can enumerate, This will work, but if I can't do that It could possibly create a large amount of work in the future.

White Wizzard

Ugh. Painful.

But, can you use before_save on the model with the value?