On 14 October 2010 13:46, Walter Lee Davis <[email protected]> wrote:
> I have a general design question, and haven't written any code for this
> feature yet. I'm setting up a control panel for a sort of team/content
> management system. A new project needs a team to work on it. The project has
> been saved, so we don't have to worry about that. But each member of the
> team needs to have a role in relation to this project (they may have another
> role on a different project). So I am thinking about using a
> has_many_through relationship between projects and people using a Role
> model.
>
> An admin comes to a new screen to set up the team for this project. She sees
> a list of all available people in the system, and can check one or more of
> them to be added to the team. In each chosen person's form row, she also
> needs to pick a role for that person from a select or radio field.
>
> So my question is this: Which model needs to draw this interface? I am
> thinking this is coming from the Project, which is iterating over a list of
> Person.all and accepts_nested_attributes for Roles within each instance of
> that list.

The first point is that it is not models that draw interfaces it is
controllers via views.  Note that there does not need to be a one to
one relationship between models and controllers.  Since you said that
the admin sees a list of available people, perhaps it should be in the
people controller.  Perhaps you would be better off with an admin
controller.  It is impossible to say from here.  I would advise going
with whichever seems most logical to you.  Make sure you write tests
first and later if you decide it would be better in a different
controller it is easy to move it.  The tests will give you confidence
that you have not messed anything up whilst refactoring.

Colin

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" 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-talk?hl=en.

Reply via email to