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.