Вообще говоря, вызов действия одного контроллера из другого является ошибкой проектирования.Это либо означает, что у вас есть общая бизнес-логика, которая подразумевает, что код должен быть в models
(или, возможно, lib
), либо у вас есть общая логика представления, которая подразумевает, что код должен быть в helpers
.
Так что в вашем случае использование помощника кажется подходящим:
module ApplicationHelper
# ...
def getByCriteria(some, criteria, here)
# handle criteria here
# Something like:
# render :partial => 'foo'
end
# ...
end
А затем просто вызывайте его из представлений.
Если вам нужен полный контроллер / представление, похожее на общий доступ к компонентам через вашВ приложении вы можете использовать гем под названием cells
.Это позволяет создавать контроллер многократного использования и просматривать компоненты.