【问题标题】:Routing Error No route matches "/users" Ruby on Rails Tutorial: Learn Rails by Example, by Michael Hartl路由错误 No route matches "/users" Ruby on Rails 教程:通过示例学习 Rails,作者 Michael Hartl
【发布时间】:2011-12-20 05:27:02
【问题描述】:

我正在关注 Ruby on Rails 教程:通过示例学习 Rails,作者 Michael Hartl。

http://ruby.railstutorial.org/chapters/a-demo-app#sec:a_micropost_microtour

问题开始: 所以,当我输入:

$ rails generate scaffold Micropost content:string user_id:integer

命令执行良好。

但是,当我输入:$ bundle exec rake db:migrate

我收到以下错误:

K-MacBook-Pro:demo_app ka$ bundle exec rake db:migrate
WARNING: 'require 'rake/rdoctask'' is deprecated.  Please use 'require
'rdoc/task' (in RDoc 2.4.2+)' instead.
   at /Users/ka/.rvm/gems/ruby-1.9.2-p290@global/gems/rake-0.9.2.2/lib/rake/rdoctask.rb
WARNING: Global access to Rake DSL methods is deprecated.  Please include
   ...  Rake::DSL into classes and modules which use the Rake DSL methods.
WARNING: DSL method DemoApp::Application#task called at
/Users/ka/.rvm/gems/ruby-1.9.2-p290@global/gems/railties-3.0.1/lib/rails/application.rb:214:in
`initialize_tasks'
==  CreateUsers: migrating ====================================================
-- create_table(:users)
  -> 0.0023s
==  CreateUsers: migrated (0.0024s) ===========================================

信息:

Rails -v: 3.0.1
gem list:
abstract (1.0.0 ruby)
actionmailer (3.0.1 ruby)
actionpack (3.0.1 ruby)
activemodel (3.0.1 ruby)
activerecord (3.0.1 ruby)
activeresource (3.0.1 ruby)
activesupport (3.0.1 ruby)
addressable (2.2.6)
arel (1.0.1 ruby)
builder (2.1.2 ruby)
bundler (1.0.21)
erubis (2.6.6 ruby)
heroku (2.17.0)
i18n (0.4.2 ruby)
json (1.6.3)
launchy (2.0.5)
mail (2.2.19 ruby)
mime-types (1.17.2 ruby)
polyglot (0.3.3 ruby)
rack (1.2.4 ruby)
rack-mount (0.6.14 ruby)
rack-test (0.5.7 ruby)
rails (3.0.1 ruby)
railties (3.0.1 ruby)
rake (0.9.2.2, 0.8.7 ruby)
rdoc (3.12)
rest-client (1.6.7)
rubyzip (0.9.5)
sqlite3 (1.3.3)
sqlite3-ruby (1.3.3, 1.2.5 ruby)
term-ansicolor (1.0.7)
thor (0.14.6 ruby)
treetop (1.4.10 ruby)
tzinfo (0.3.31 ruby)

我尝试过的:

我将 "gem "rake", "0.8.7"" 复制到了我的 Gemfile 我跑了bundle update rake 然后我尝试了:$ bundle exec rake db:migrate (在 /Users/ka/rails_projects/demo_app 中) 在此之后,它让我回到 $prompt。

当我打开http://localhost:3000/users 我收到以下错误:

路由错误 没有路线匹配“/用户” 没有路由匹配“/Users”

【问题讨论】:

  • 运行 rake db:migrate 时我没有看到任何错误,只有警告。

标签: ruby-on-rails


【解决方案1】:

问题是您在 config/routes.rb 中没有为用户设置任何路径。

如果用户是资源,可以在文件中添加以下内容:

# config/routes.rb
resources :users

这将允许您使用 /users、users_path、user_path(@user) 等。

您收到的 rdoc 警告就是警告。它们很可能是由于需要更新的宝石(最终)。尽可能让您的 gem 保持最新状态,您最终会看到警告消失(很可能)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多