Проблема с интеграцией Rails 3 и Sinatra

Я пытаюсь настроить приложение sinatra внутри своего приложения Rails 3 (v3.0.1), но безуспешно. Sinatra gem (v1.1.0) устанавливается с помощью пакетной установки.

Вот что у меня есть.

Класс customer_app.rb в каталоге lib —

class CustomerApp < Sinatra::Base

  get "/test" do
    "Hello World"
  end

end

мой файл routes.rb содержит -

CustomerService::Application.routes.draw do

    root :to => CustomerApp

end

Я пытаюсь использовать URL-адрес - http://localhost:3000/test.

Я получаю эту ошибку (в браузере) - Ошибка маршрутизации. Нет маршрута, соответствующего "/test"

и эта ошибка в журнале - ActionController::RoutingError (Нет маршрута, соответствующего "/test"):

Есть ли что-то, что я упускаю??

Также я только что заметил, что даже простой маршрут стойки не работает -

root :to => proc { |env| [200, {}, ["Welcome!"]]}

person kapso    schedule 15.11.2010    source источник
comment
Каталог lib перезагружается только при перезапуске сервера. Итак, если вы запустили свой сервер до того, как сохранили изменения в файле customer_app.rb, он не подключится. Хотя, это всего лишь намек. Можете ли вы дать немного больше деталей?   -  person 0100110010101    schedule 15.11.2010
comment
Я смог добраться до этой проблемы, но у меня есть новая. знаете ли вы, как решить эту проблему - stackoverflow.com/ вопросы/4191698/   -  person kapso    schedule 16.11.2010


Ответы (1)


Ключевое слово root по умолчанию отображает только путь /.

Итак, вы пытаетесь сказать, перенаправьте любой запрос на / на CustomerApp, который может обрабатывать запросы на /test.

Вы должны изменить фильтр соответствия.

CustomerService::Application.routes.draw do
  match "/test" :to => CustomerApp
end
person Simone Carletti    schedule 15.11.2010
comment
спасибо, это сработало. Знаете ли вы, работают ли параметры nameD с Rails/Sinatra Setup, мне не повезло заставить их работать?? - person kapso; 16.11.2010
comment
знаете ли вы, как решить эту проблему - stackoverflow.com/ вопросы/4191698/ .спасибо - person kapso; 16.11.2010