Ruby on rails 没有与[GET]匹配的路由/&引用;设计用户注册
我对Rails的工作是全新的。我正在学习Treehouse的“构建一个简单的RubyonRails应用程序”教程。直到现在一切都很顺利 我正试图生成designe视图,但当我转到localhost:3000/users/sign\u时,我得到一个错误消息Ruby on rails 没有与[GET]匹配的路由/&引用;设计用户注册,ruby-on-rails,ruby,devise,Ruby On Rails,Ruby,Devise,我对Rails的工作是全新的。我正在学习Treehouse的“构建一个简单的RubyonRails应用程序”教程。直到现在一切都很顺利 我正试图生成designe视图,但当我转到localhost:3000/users/sign\u时,我得到一个错误消息 Routing Error No route matches [GET] "/" Try running rake routes for more information on available routes. 当我转到用户/注册、用户/
Routing Error
No route matches [GET] "/"
Try running rake routes for more information on available routes.
当我转到用户/注册、用户/登录时会发生这种情况,但当我转到用户/编辑时不会发生这种情况
当我试图访问用户/注册时,这就是终端对我的回吐
Started GET "/users/sign_up" for 127.0.0.1 at 2013-10-11 11:16:24 -0400
Processing by Devise::RegistrationsController#new as HTML
User Load (0.1ms) SELECT "users".* FROM "users" WHERE "users"."id" = 1 LIMIT 1
Redirected to http://localhost:3000/
Filter chain halted as :require_no_authentication rendered or redirected
Completed 302 Found in 48ms (ActiveRecord: 1.7ms)
Started GET "/" for 127.0.0.1 at 2013-10-11 11:16:24 -0400
ActionController::RoutingError (No route matches [GET] "/"):
actionpack (3.2.12) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
actionpack (3.2.12) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call'
railties (3.2.12) lib/rails/rack/logger.rb:32:in `call_app'
railties (3.2.12) lib/rails/rack/logger.rb:16:in `block in call'
activesupport (3.2.12) lib/active_support/tagged_logging.rb:22:in `tagged'
railties (3.2.12) lib/rails/rack/logger.rb:16:in `call'
actionpack (3.2.12) lib/action_dispatch/middleware/request_id.rb:22:in `call'
rack (1.4.5) lib/rack/methodoverride.rb:21:in `call'
rack (1.4.5) lib/rack/runtime.rb:17:in `call'
activesupport (3.2.12) lib/active_support/cache/strategy/local_cache.rb:72:in `call'
rack (1.4.5) lib/rack/lock.rb:15:in `call'
actionpack (3.2.12) lib/action_dispatch/middleware/static.rb:62:in `call'
railties (3.2.12) lib/rails/engine.rb:479:in `call'
railties (3.2.12) lib/rails/application.rb:223:in `call'
rack (1.4.5) lib/rack/content_length.rb:14:in `call'
railties (3.2.12) lib/rails/rack/log_tailer.rb:17:in `call'
rack (1.4.5) lib/rack/handler/webrick.rb:59:in `service'
/usr/local/rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/webrick/httpserver.rb:138:in `service'
/usr/local/rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/webrick/httpserver.rb:94:in `run'
/usr/local/rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/webrick/server.rb:191:in `block in start_thread'
Rendered /usr/local/rvm/gems/ruby-1.9.3-p392/gems/actionpack-3.2.12/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout (1.6ms)
^C[2013-10-11 11:19:28] INFO going to shutdown ...
[2013-10-11 11:19:28] INFO WEBrick::HTTPServer#start done.
Exiting## Heading ##
当我运行rake routes时,这就是它的样子
Mikes-MacBook-Pro:treebook mike$ rake routes
new_user_session GET /users/sign_in(.:format) devise/sessions#new
user_session POST /users/sign_in(.:format) devise/sessions#create
destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy
user_password POST /users/password(.:format) devise/passwords#create
new_user_password GET /users/password/new(.:format) devise/passwords#new
edit_user_password GET /users/password/edit(.:format) devise/passwords#edit
PUT /users/password(.:format) devise/passwords#update
cancel_user_registration GET /users/cancel(.:format) devise/registrations#cancel
user_registration POST /users(.:format) devise/registrations#create
new_user_registration GET /users/sign_up(.:format) devise/registrations#new
edit_user_registration GET /users/edit(.:format) devise/registrations#edit
PUT /users(.:format) devise/registrations#update
DELETE /users(.:format) devise/registrations#destroy
statuses GET /statuses(.:format) statuses#index
POST /statuses(.:format) statuses#create
new_status GET /statuses/new(.:format) statuses#new
edit_status GET /statuses/:id/edit(.:format) statuses#edit
status GET /statuses/:id(.:format) statuses#show
PUT /statuses/:id(.:format) statuses#update
DELETE /statuses/:id(.:format) statuses#destroy
对于下一步该怎么办,我感到十分困惑。非常感谢您的帮助
谢谢您需要定义一个根路由,以便Rails在打开根路径时知道将某人发送到哪里 一旦你登录,Desive会想重定向到某个地方,如果没有根路径,它就没有地方可去
root to:“statuses#index”
可能是一个很好的开始Rails找不到您的root\u url
尝试将以下内容添加到routes.rb中,然后重新启动服务器
root to:'/'
其中,root
是路由器的一种辅助方法,它从一个控制器(如users#index
)将选项hash转换为:'controller#action'
to
的值可以采用字符串或其他ruby对象,您将了解到这一点
查看本教程了解更多想法->太棒了,谢谢你的帮助!但是现在我在访问localhost时遇到了同样的问题:3000/users/sign_out这是终端的样子:在2013-10-11 12:11:21-0400 ActionController::RoutingError(没有路由匹配[GET]“/users/sign_out”):看起来/users/sign_out只采用DELETE HTTP方法。您很可能需要创建一个专门的链接来单击,而不是直接访问该路径。类似于:delete)%>
的东西应该可以做到。另外,这里有一个完整的指南,可以将所有与设计相关的链接添加到所有页面上显示的菜单中:太棒了,谢谢您的帮助。我真的很感激!