REST, Nested Routes and Best Practices


#1

Hi everyone,

I am trying to strictly adhere to REST and I have a few code
organization questions.

My database tables are as follows:

USERS
GROUPS
GROUP_USERS
EVENTS
EVENT_USERS

The relationships are as follows:

GROUPS have many USERS and USERS have many GROUPS.
EVENTS have many USERS and USERS have many EVENTS.

So, right now, I have a controller for users, groups and events. I got
to the point where I want to have USERS add themselves to a GROUP and/or
an EVENT. Before I add methods to the group or event controller
specifically that are called something like add_user, delete_user,
edit_user … I want to get everyones take on my problem.


Here is my question:

Should I either (a) create a new controller for GROUP_USERS and
EVENT_USERS that handles the GROUP/USER and EVENT/USER relationships

OR

Should I (b) reuse the user controller code and in “def create” check to
see if there is an event_id or group_id present and then add the user to
either the group or event there?


Or, I guess, is there a better way to handle this?

Thanks a ton in advance,
Brandon


#2

On Dec 5, 11:43 am, Brandon G. removed_email_address@domain.invalid
wrote:

EVENTS
specifically that are called something like add_user, delete_user,
Should I (b) reuse the user controller code and in “def create” check to
Posted viahttp://www.ruby-forum.com/.
I think you would benefit a Memberships controller (or something like
that), that would handle the adding/removing of users to and from
groups. You might also want a corresponding membership model (though
it’s not totally necessary, but many people find it helpful).

That way, your Users and Groups controllers stay “clean”, and you
isolate the membership-ness stuff to a separate controller.

Jeff

purpleworkshops.com


#3

Jeff C. wrote:

On Dec 5, 11:43�am, Brandon G. removed_email_address@domain.invalid
wrote:

EVENTS
specifically that are called something like add_user, delete_user,
Should I (b) reuse the user controller code and in “def create” check to
Posted viahttp://www.ruby-forum.com/.
I think you would benefit a Memberships controller (or something like
that), that would handle the adding/removing of users to and from
groups. You might also want a corresponding membership model (though
it’s not totally necessary, but many people find it helpful).

That way, your Users and Groups controllers stay “clean”, and you
isolate the membership-ness stuff to a separate controller.

Jeff

purpleworkshops.com

That sounds like a good option. I really didn’t want to muddy up the
users controller at all and keep them clean like you said.