Использование промежуточного программного обеспечения стойки непосредственно из действий Rails

У меня есть промежуточное программное обеспечение Rack, которое я хочу встроить в свое приложение Rails. Под внедрением я имею в виду внедрение его в макет моего приложения, чтобы <%= yield %> содержит тело того, что возвращает приложение Rack.

Вот мое текущее решение:

def show
  result = MyRackApp.new.call(request.env)
  render :text => result[2].read, :status => result[0]
end

Это проблематично, так как result[2] не всегда имеет стиль IO read метод, это может быть Rack::File например.

Итак, как мне сделать, чтобы контроллер Rails рендерил [200, {}, some_io_object] Тип стойки ответ? В качестве альтернативы, могу ли я сделать это с помощью промежуточного программного обеспечения Rack, способного отображать макеты Rails?

Я использую Rails 3.0.9.

1 ответ

Решение

Если вы хотите использовать стоечное приложение от Rails, вы должны смонтировать его с вашего роутера (rout.rb)

AppName::Application.routes.draw do 
  # Other routes

  mount MyRackApp => "/pathToReachIt"

  # root to: '...'
end

Больше информации здесь

Другие вопросы по тегам