lavezzi1
@lavezzi1

Как срендерить шаблон одного контроллера в другой?

Есть два контроллера и два щаблона соответственно. Но нужно выводить данные из этих двух контроллеров в одну страницу, скажем в шаблон первого контроллера, как быть? Пробовал render как тут - rusrails.ru/layouts-and-rendering-in-rails то есть, второй шаблон прицепить к первому =render "messages/message". Не работает, потому что ему нужны методы из второго контроллера, посыпались ошибки undefined method for each и так далее. Что в таком случае делать? Объеденять контроллеры?
  • Вопрос задан
  • 223 просмотра
Решения вопроса 1
delef
@delef
Разработчик (Crystal, Python, Ruby, PHP, JS)
Размышляете немного не верно. Что бы отработал контроллер - на него должен придти запрос. Т.е. делать ajax-request нужно к нему.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
orlov0562
@orlov0562
I'm cool!
Я не силен в руби, но обычно экшен контроллера, это простой метод, который можно вызвать где угодно.

например есть
class controller_1 {
   public function action_1(){
       return $template_1->render()
   }
}


тогда можно, сделать так:

class controller_2 {
   public function action_2(){
       $param = (new controller_1)->action_1();
       return $template_2->render($param)
   }
}


Для того, чтобы понять как правильно решать данную задачу можно погуглить реализацию паттерна PAC (HMVC) для вашего яп.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы