Где поставить этот код? - PullRequest
0 голосов
/ 01 апреля 2010

[Rails] Где разместить этот код?

У меня есть пользователь1, и когда другой зарегистрированный пользователь2 видит профиль пользователя1, на нем есть несколько кнопок: [«добавить в друзья», «дать мне свой номер», «дать мне свой адрес электронной почты», «спросить ее» , 'посмотреть фотографии']. 1,2,3,4 POST, с AJAX. Теперь мне нужно создать новый контроллер с именем «ProfileActionsController» или я должен поместить этот код в «UsersController»?

или, может быть, другая возможность? спасибо;)

Ответы [ 3 ]

1 голос
/ 02 апреля 2010

Скорее всего, вам придется хранить некоторые из этих отношений в разных таблицах базы данных. Например, User has_many :friends. Этот дизайн поощряет модель Friend. Что приводит к FriendsController и к URL-адресам, таким как POST /user/1/friend, чтобы создать дружбу между текущим пользователем (user2) и пользователем 1.

Они принадлежат отдельному контроллеру.

Если вам нужно больше Ajax-действий для пользователя , определение их в UsersController - правильное место. «Дайте мне ваш номер», «Дайте мне ваш адрес электронной почты» и «Просмотр фотографий», в зависимости от требований, могут быть скрытыми разделами html или простыми AJAX GET-запросами к UserController для визуализации партиалов или JSON.

Те могут остаться на UserController

ОБЩИЕ СОВЕТЫ: ​​ Всегда старайтесь не выходить за пределы 7 действий для каждого контроллера (новый, создавать, редактировать, обновлять, индексировать, показывать, уничтожать) - когда вы чувствуете, что вам нужно определить собственное действие, подумайте, к какому из 7 он ближе всего. Можно ли это сочетать изящно? Если нет, то действует ли он по отдельной концепции?

1 голос
/ 01 апреля 2010

Вы можете сделать оба. Чтобы пользователи не стали слишком громоздкими, вы должны установить новый контроллер, который поможет в обслуживании.

0 голосов
/ 02 апреля 2010

Если это действие, выполненное над пользователем (то есть, которое каким-то образом изменяет пользователя через его модель), то в идеале вы должны поместить эти действия в users_controller.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...