Учебник по рельсам 3: маршрут не соответствует [GET] /

SO,

Заплатил за PDF несколько часов назад, внимательно следовал инструкциям, но после запуска first_app я вижу это в localhost: 3000:

Routing Error

No route matches [GET] "/"

Не трогал код, просто запустил сервер после выполнения «rails new first_app».

Из командной строки:

552 ~/Downloads/rails_projects/first_app>=> Booting WEBrick
=> Rails 3.1.0.rc6 application starting in production on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
Sprockets::Environment#static_root is deprecated
[2011-08-20 16:44:40] INFO  WEBrick 1.3.1
[2011-08-20 16:44:40] INFO  ruby 1.9.2 (2011-07-09) [x86_64-darwin10.8.0]
[2011-08-20 16:44:40] INFO  WEBrick::HTTPServer#start: pid=97719 port=3000

552 ~/Downloads/rails_projects/first_app>cache: [GET /] miss

Started GET "/" for 127.0.0.1 at 2011-08-20 16:45:06 -0400

ActionController::RoutingError (No route matches [GET] "/"):

Rendered /Users/briano/.rvm/gems/[email protected]/gems/actionpack-3.1.0.rc6
/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within 
rescues/layout (7.3ms)

Используя рельсы 3.1 и рубин 1.9.2:

554 ~/Downloads/rails_projects/first_app>rails -v
Rails 3.1.0.rc6
555 ~/Downloads/rails_projects/first_app>ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin10.8.0]

Используя rvm, создал специальный гемсет и так далее. Есть предположения?


person Brian O.    schedule 20.08.2011    source источник
comment
Правильно. На самом деле купил учебник по Rails 3. Давайте проясним: эта ошибка не по вине туториала.   -  person Brian O.    schedule 21.08.2011
comment
Ваш пост не показывает, какую команду вы ввели для запуска своего сервера. Вы выпустили rails server?   -  person Tass    schedule 28.06.2013


Ответы (4)


Сервер пытается использовать механизм кэширования (поскольку он находится в рабочем режиме).

Попробуйте запустить его в разработке.

На этот вопрос есть множество ответов о том, как запустить ваше приложение в рабочей среде ( просто замените их решения разработкой).

person bias    schedule 27.11.2011

Вы пытались создать новое приложение и снова запустить команду сервера rails? вернись ко мне с ответом..

person Morpheus    schedule 25.08.2011
comment
Морфеус, да, есть. До сих пор я пробовал несколько разных вещей (имейте в виду, Snow Leopard, 10.6.8): вручную собрать ruby ​​в /usr/local и использовать gem для установки, использовать rvm и его ruby ​​и gem, в настоящее время использую Homebrew и его драгоценные камни. Во всех случаях я получаю тот же результат. Конечно, я всегда удаляю старый ruby ​​и gems, а также создаю first_app заново каждый раз, когда устанавливаю новый ruby. Я также удалил ruby ​​и rails из старого SDK 10.5 в /Developer/SDKs. По сути, каждый раз пытаясь иметь только один рубин и набор драгоценных камней, несмотря ни на что, но каждый раз я получаю одну и ту же ошибку. - person Brian O.; 29.08.2011
comment
Текущие версии: ruby ​​1.9.2p290 (версия 32553 09.07.2011) [x86_64-darwin10.8.0], Rails 3.0.10. Мой друг, который много занимается разработкой рельсов. тоже играл с моим ноутбуком, он был озадачен. Другие вещи, которые я сделал: удалил все из .bash_profile и переиспользовал, чтобы проверить, не было ли проблемой какой-то странный ENV, отредактировал /etc/hosts.... - person Brian O.; 29.08.2011
comment
я не знаю, чувак, даже я новичок в рельсах... надеюсь, ты найдешь решение - person Morpheus; 29.08.2011

Даже я столкнулся с той же проблемой. Возможная проблема может заключаться в том, что вы используете сервер rails в другом каталоге приложений. Попробуйте запустить свой сервер rails с того же пути, что и ваше приложение.

person rajkumarts    schedule 04.04.2013

Я предположил, что это было из демонстрационного приложения. В первом приложении нет контроллеров, поэтому что-то сломано, но вы увидите это снова во втором, demo_app в первом приложении, попробуйте раскомментировать /# root :to => 'welcome#index' и убедитесь, что файл index.html общедоступен.

Когда вы видите это в demo_app: у вас нет маршрута для основного приложения или «корня» приложения.
Если вы измените адрес на http://localhost:3000/users, действие index, которое
HTML Get for users покажет всех ваших пользователей, которых на данный момент нет.
Чтобы решить эту проблему, вам нужно добавить маршрут к основному URL или root (http://localhost:3000).
Если вы введете "rake routes", вы видите, что есть маршруты для пользователей, но нет маршрута для root.

Откройте файл config/routes.rb внизу, измените строку: /# root :to => 'welcome#index' на: root :to => 'users#index'

users#index совпадает с первым маршрутом из rake route.

{:action=>"index", :controller=>"users"}

Вы изменили действие по умолчанию, чтобы перейти к контроллеру пользователей и действию индекса. Рейк-маршруты теперь показывают запись для root.

person TW Scannell    schedule 29.11.2011