Вызов контроллера из другого - PullRequest
2 голосов
/ 02 декабря 2009

Я хочу вызвать действие контроллера из другого контроллера.

Как я могу это сделать?

Несколько лет назад были компоненты, но они больше не доступны.

С наилучшими пожеланиями

Ответы [ 2 ]

2 голосов
/ 02 декабря 2009

Вы не можете вызвать метод действия другого контроллера.
У вас есть только два решения.

Выполнение перенаправления на соответствующий URL.

redirect_to '/'

Но, конечно, если у вас есть данные из формы, вы теряете их.

Визуализация действия с другого контроллера.

render 'controller/action'

Вы сохраняете все свои определенные данные (параметры и все остальное).
Но вам нужно снова сделать все то, что сделал бы другой контроллер.

Одним из решений, позволяющих избежать повторения строк кода, было бы использование библиотечного метода, определяющего все переменные, которые вам нужны в вашем представлении, и использование этого метода в ваших двух контроллерах.

2 голосов
/ 02 декабря 2009

redirect_to является предпочтительным способом сделать это.

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

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