Theory Question

I have a scenario where there is list of things (a list of chores for example) that have two parts, task and description.

On an ongoing basis we assign a group of chores to people. Each assigned chore can be tweaked – the description could be changed to say “don’t forget to do x.”

In this case there is not a has_and_belongs_to (or many_through) relationship between people and chores because we don’t want to edit the main list of chores. We do want to go back later and see who had what chore and what the specific instructions were.

My current idea is:

Chore_Set has_many Chores (Chore_Set_id in each Chore) These chores have no overlap per set and are relatively set.

Chores_User is somehow populated by selecting a Chore_Set, giving a copy of the individual Chores. Chores_user has the User_Id.

Chores_User fields can then be edited or changed without changing the original Chore or Chore_Set

I have a scenario where there is list of things (a list of chores
for example) that have two parts, task and description.

On an ongoing basis we assign a group of chores to people. Each
assigned chore can be tweaked -- the description could be changed to
say "don't forget to do x."

In this case there is not a has_and_belongs_to (or many_through)
relationship between people and chores because we don't want to edit
the main list of chores. We do want to go back later and see who had
what chore and what the specific instructions were.

why not just have chores has_many :users, :through => :assignments ? The assignments model could carry all the user specific stuff
(customised description etc...)

Fred

why not just have chores has_many :users, :through => :assignments ? The assignments model could carry all the user specific stuff (customised description etc...)

+1

then, you could share the chores but have specific attributes for each relation of user with chore. (description, due date...)

Hi

I have a scenario where there is list of things (a list of chores for example) that have two parts, task and description.

On an ongoing basis we assign a group of chores to people. Each assigned chore can be tweaked -- the description could be changed to say "don't forget to do x."

I'm puzzled by this statement:

In this case there is not a has_and_belongs_to (or many_through) relationship between people and chores because we don't want to edit the main list of chores.

What does editing the main list of chores have to do with the has_many :through relationship? As Fred says, the easiest way would be to actually link the tables together with a join model (assignments) so you can track which user has which chore. But I also think to read in your question the requirement to assign a *group* of chores to each user, with the groups being pre-defined, rather than individual chores. In that case, I would add an attribute to chore, the name of the group it belongs to (or make a separate model for that) and still assign individual chores to each user (but in the assignment method and views, make sure you can only assign them by group).

Your question is still a bit ambiguous to me, not sure I'm on the right track.

Dirk.