Почему '/' правильно соответствует приложению Rack в моем приложении Rails 3, а другой маршрут не соответствует? - PullRequest
2 голосов
/ 12 апреля 2011

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

В моей директории lib у меня есть example_app.rb, который просто является приложением Sinatra:

class ExampleApp < Sinatra::Base
  get '/' do
    "Hello from Sinatra"
  end
end

И я самозагружаюсьэто с конфигурацией application.rb config.auto_load_paths.

В моем файле маршрутов у меня есть только:

match "/" => ExampleApp

И это отлично подходит, когда я запускаю сервер rails (Webrick).Однако, если я попытаюсь:

match "/example" => ExampleApp

Посещение localhost: 3000 / example выдает ошибку «Нет совпадений маршрутов» / example ».Запуск маршрутизации по рейку показывает маршрут:

example  /example(.:format) {:to=>ExampleApp}

Если я попытаюсь сопоставить «/ пример» с действием контроллера, то он будет работать нормально, но не с тем приложением Sinatra, что выше, поэтому я не уверен, чтопродолжается.Я знаю, что мне чего-то не хватает, чего я не нахожу в документации по маршрутизации на сайте Rails.

Спасибо за любую помощь.

1 Ответ

3 голосов
/ 12 апреля 2011

Проблема в том, что ваше приложение Sinatra отвечает только на запросы, сделанные к /.Вам нужно либо добавить

get '/example'

, либо сделать подстановочный знак, используя *

get '*' do
  "Hello from Sinatra"
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...