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

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

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

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

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

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

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

1 Ответ

1 голос
/ 05 января 2014

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

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

  mount MyRackApp => "/pathToReachIt"

  # root to: '...'
end

Подробнее здесь

...