Forum: Ruby on Rails REST, Nested Routes and Best Practices

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
4e74fa6b2771e33ca73211d45d814e4e?d=identicon&s=25 Brandon Greeley (bmgreeley)
on 2008-12-05 18:43
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
8217faf2bfdfa7daf10135d41ddd421e?d=identicon&s=25 Jeff Cohen (jeff)
on 2008-12-05 21:11
(Received via mailing list)
On Dec 5, 11:43 am, Brandon Greeley <rails-mailing-l...@andreas-s.net>
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
4e74fa6b2771e33ca73211d45d814e4e?d=identicon&s=25 Brandon Greeley (bmgreeley)
on 2008-12-05 22:37
Jeff Cohen wrote:
> On Dec 5, 11:43�am, Brandon Greeley <rails-mailing-l...@andreas-s.net>
> 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.
This topic is locked and can not be replied to.