Скорее всего, вам придется хранить некоторые из этих отношений в разных таблицах базы данных. Например, User
has_many :friends
. Этот дизайн поощряет модель Friend
. Что приводит к FriendsController
и к URL-адресам, таким как POST /user/1/friend
, чтобы создать дружбу между текущим пользователем (user2) и пользователем 1.
Они принадлежат отдельному контроллеру.
Если вам нужно больше Ajax-действий для пользователя , определение их в UsersController
- правильное место. «Дайте мне ваш номер», «Дайте мне ваш адрес электронной почты» и «Просмотр фотографий», в зависимости от требований, могут быть скрытыми разделами html или простыми AJAX GET-запросами к UserController
для визуализации партиалов или JSON.
Те могут остаться на UserController
ОБЩИЕ СОВЕТЫ: Всегда старайтесь не выходить за пределы 7 действий для каждого контроллера (новый, создавать, редактировать, обновлять, индексировать, показывать, уничтожать) - когда вы чувствуете, что вам нужно определить собственное действие, подумайте, к какому из 7 он ближе всего. Можно ли это сочетать изящно? Если нет, то действует ли он по отдельной концепции?