Модель без представления: нужен ли мне контроллер в Rails - PullRequest
2 голосов
/ 02 января 2012

Я хотел бы иметь модель рефералов, где пользователь A может передать событие X пользователю B. Способ, которым я планирую реализовать его, - без просмотров рефералов. У меня просто есть кнопка «Ссылка» на странице событий / шоу для создания действия, и я пригласил пользователей на страницу «Пользователи / шоу» для показа. Я не вижу необходимости создавать вид для реферала.

С точки зрения шаблона проектирования, можно ли создать действие "refer" в Events_Controller для вызова метода create в модели Referral, вместо отправки его на назначенный контроллер (т. Е. Refferals_Controller), который будет вызывать модель Referral

В целом, следует ли мне создавать контроллер, чтобы другие контроллеры могли взаимодействовать с моей моделью, даже если мне не нужны никакие представления для этой конкретной модели?

Спасибо.

Ответы [ 2 ]

4 голосов
/ 02 января 2012

Контроллер - это место, куда приходят http-запросы (после прохождения маршрутизации). Нет входящих запросов == Нет контроллера. Хорошо, когда контроллер соответствует схеме REST (index, show, create ...). Но вы также можете добавить и не-REST действия (Rails Routing поддерживает это: 3 нересурсных маршрута )
Все взаимодействие с моделью, вероятно, должно идти в классе модели. (Правка: я имею в виду код)

0 голосов
/ 02 января 2012

Не следует создавать контроллер для переадресации вызовов на модель с других контроллеров. Вы можете иметь несколько моделей на контроллер. Или несколько контроллеров на модель.

Иногда (если вы знаете, что делаете), вы даже можете вызывать методы модели непосредственно из представления («некоторые правила могут быть согнуты, некоторые могут быть нарушены» (c) Морфеус).

...