rails 3教程:没有路由匹配[GET]“/”

时间:2011-08-20 21:24:43

标签: ruby-on-rails railstutorial.org

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/ruby-1.9.2-p290@rails3.1/gems/actionpack-3.1.0.rc6
/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within 
rescues/layout (7.3ms)

使用rails 3.1和ruby 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,创建一个特殊的gemset,依此类推。有什么想法吗?

4 个答案:

答案 0 :(得分:1)

服务器正在尝试使用缓存机制(因为它处于生产模式)。

尝试在开发中运行它。

This question有很多关于如何在生产中运行应用程序的答案(简单地说,用开发代替他们的解决方案)。

答案 1 :(得分:0)

您是否尝试过创建新应用并再次运行rails server命令? 请回答我的答案..

答案 2 :(得分:0)

我认为这是来自演示应用程序。第一个应用程序没有控制器,因此某些内容已被破坏,但您会在第二个应用程序中再次看到此内容,demo_app在第一个应用中,尝试取消注释/# root :to => 'welcome#index'并确保index.html文件是在公共场合。

当你在demo_app中看到这个时: 您没有该应用的主应用“root”的路由。
如果您将地址更改为http://localhost:3000/users,那么索引操作(即html Get for users)将显示您的所有用户,此时此用户均为无。 要解决此问题,您需要添加到主网址http://localhost:3000)的路由。
如果您键入"rake routes",您会看到有用户的路由但没有root路由。

打开底部附近的config/routes.rb文件,更改行: /# root :to => 'welcome#index' 致:root :to => 'users#index'

users#index与rake路线的第一条路线相同。

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

您已更改默认操作以转到用户控制器和索引操作。 Rake路由现在显示root的条目。

答案 3 :(得分:0)

即使我遇到同样的问题。可能的问题可能是您在不同的app目录上运行rails服务器。尝试从与应用程序相同的路径运行rails服务器。