【问题标题】:undefined method `root' for main:Objectmain:Object 的未定义方法“root”
【发布时间】:2012-05-05 15:46:56
【问题描述】:

我的问题是,为什么我必须看到这个错误?

main:Object 的未定义方法 `root'

当我访问我的网站并查看 Phusion 错误页面时,我得到了这个。这是长输出:

Ruby on Rails 应用程序无法启动 这些是可能的 原因:应用程序代码中可能存在语法错误。请 检查此类错误并修复它们。所需的库可能不 安装。请安装此应用程序的所有库 需要。应用程序可能未正确配置。请检查 是否所有配置文件都写入正确,修复任何 错误的配置,然后重新启动此应用程序。一项服务 应用程序依赖(例如数据库服务器或 Ferret 搜索引擎服务器)可能尚未启动。请开始 服务。有关错误的更多信息可能已写入 应用程序的日志文件。请检查它以便分析 问题。错误消息:main:Object 的未定义方法“root” 异常类:NoMethodError 应用程序根: /home/$user/rails_apps/junkie 回溯:

文件行位置 0 /home/$user/rails_apps/$app/config/routes.rb 34

1 /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.14/lib/action_controller/routing/route_set.rb 227 in draw' 2 /home/$user/rails_apps/$app/config/routes.rb 1 3 /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.14/lib/active_support/dependencies.rb 173 in load_without_new_constant_marking' 4 /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.14/lib/active_support/dependencies.rb 173 在 load' 5 /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.14/lib/action_controller/routing/route_set.rb 287 in load_routes! 6 /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.14/lib/action_controller/routing/route_set.rb 287 in each' 7 /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.14/lib/action_controller/routing/route_set.rb 287 in load_routes! 8 /usr/lib/ruby/gems/1.8/gems/actionpack-2.3.14/lib/action_controller/routing/route_set.rb 267 in reload!' 9 /usr/lib/ruby/gems/1.8/gems/rails-2.3.14/lib/initializer.rb 537 in initialize_routing' 10 /usr/lib/ruby/gems/1.8/gems/rails-2.3.14/lib/initializer.rb 188 在 process' 11 /usr/lib/ruby/gems/1.8/gems/rails-2.3.14/lib/initializer.rb 113 in 发送' 12 /usr/lib/ruby/gems/1.8/gems/rails-2.3.14/lib/initializer.rb 113 在 run' 13 /home/$user/rails_apps/$app/config/environment.rb 9 14 /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb 36 in gem_original_require' 15 /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb 36 在 require' 16 /usr/lib/ruby/gems/1.8/gems/passenger-3.0.12/lib/phusion_passenger/classic_rails/application_spawner.rb 222 in preload_application' 17 /usr/lib/ruby/gems/1.8/gems/passenger-3.0.12/lib/phusion_passenger/classic_rails/application_spawner.rb 181 在initialize_server' 18 /usr/lib/ruby/gems/1.8/gems/passenger-3.0.12/lib/phusion_passenger/utils.rb 572 in report_app_init_status' 19 /usr/lib/ruby/gems/1.8/gems/passenger-3.0.12/lib/phusion_passenger/classic_rails/application_spawner.rb 174 在initialize_server' 20 /usr/lib/ruby/gems/1.8/gems/passenger-3.0.12/lib/phusion_passenger/abstract_server.rb 204 in start_synchronously' 21 /usr/lib/ruby/gems/1.8/gems/passenger-3.0.12/lib/phusion_passenger/abstract_server.rb 180 在 start' 22 /usr/lib/ruby/gems/1.8/gems/passenger-3.0.12/lib/phusion_passenger/classic_rails/application_spawner.rb 149 in start' 23 /usr/lib/ruby/gems/1.8/gems/passenger-3.0.12/lib/phusion_passenger/spawn_manager.rb 219 在 spawn_rails_application' 24 /usr/lib/ruby/gems/1.8/gems/passenger-3.0.12/lib/phusion_passenger/abstract_server_collection.rb 132 in lookup_or_add' 25 /usr/lib/ruby/gems/1.8/gems/passenger-3.0.12/lib/phusion_passenger/spawn_manager.rb 214 在 spawn_rails_application' 26 /usr/lib/ruby/gems/1.8/gems/passenger-3.0.12/lib/phusion_passenger/abstract_server_collection.rb 82 in 同步' 27 /usr/lib/ruby/gems/1.8/gems/passenger-3.0.12/lib/phusion_passenger/abstract_server_collection.rb 79 在 synchronize' 28 /usr/lib/ruby/gems/1.8/gems/passenger-3.0.12/lib/phusion_passenger/spawn_manager.rb 213 in spawn_rails_application' 29 /usr/lib/ruby/gems/1.8/gems/passenger-3.0.12/lib/phusion_passenger/spawn_manager.rb 132 在 spawn_application' 30 /usr/lib/ruby/gems/1.8/gems/passenger-3.0.12/lib/phusion_passenger/spawn_manager.rb 275 in handle_spawn_application' 31 /usr/lib/ruby/gems/1.8/gems/passenger-3.0.12/lib/phusion_passenger/abstract_server.rb 357 在 __send__' 32 /usr/lib/ruby/gems/1.8/gems/passenger-3.0.12/lib/phusion_passenger/abstract_server.rb 357 in server_main_loop' 33 /usr/lib/ruby/gems/1.8/gems/passenger-3.0.12/lib/phusion_passenger/abstract_server.rb 206 在 `start_synchronously' 34 /usr/lib/ruby/gems/1.8/gems/passenger-3.0.12/helper-scripts/passenger-spawn-server 99

这里的规格是:

gem list --local rails

*** 本地宝石 ***

导轨 (2.3.14)

红宝石 -v && 宝石 -v ruby 1.8.7 (2011-02-18 补丁级别 334) [x86_64-linux] 1.8.23

在我的 config/environment.rb 我指定 rails 2.3.14

另外,我正在使用 cPanel 但不使用 cPanel 帐户来查看和处理这个应用程序。

【问题讨论】:

    标签: ruby-on-rails ruby linux cpanel phusion


    【解决方案1】:

    可能应用程序希望您在 config/routes.rb 中定义根路由(请打开 config/routes.rb 了解详细信息)

    【讨论】:

    • 我有这个:# 你可以用 map.root 路由你网站的根目录——只要记住删除 public/index.html。 root :to => "home#index" # 使用 "rake routes" 查看所有路由的布局 # 将默认路由安装为最低优先级。 # 注意:这些默认路由使每个控制器中的所有操作都可以通过 GET 请求访问。 # 如果您使用命名路由和资源,您应该考虑删除或注释掉它们。 map.connect ':controller/:action/:id' map.connect ':controller/:action/:id.:format' end
    • 是的,如果你看了,上面写着你应该设置map.root;可能您删除/重命名了 public/index.html,rails 使用它来设置新项目的主页,因此应用程序现在缺少主页;您应该指定主页设置map.root :controller => "my_controller"。话虽如此,我必须补充一点,您的 config/routes.rb 它更类似于 rails 3,而不是 rails 2!
    • 我应该怎么做才能使 config/routes.rb 更像 rails 2?
    • 另外,我将路由更改为您所说的,现在我看到了:您要查找的页面不存在。您可能输入了错误的地址或页面可能已移动。 index.html.erb 现在去哪儿了?
    • 正常,那个控制器不存在,你应该实现它!我建议你遵循一个教程(如this),这样你就可以更好地理解框架是如何工作的
    【解决方案2】:

    希望这在这里有所帮助...我基本上是全新安装的。我打了一个脚手架电话:

    mirv@rorblog:~/workspace/workspace (master) $ rails g scaffold User userID:integer index  name:string email:string password:string lastLogin:datetime
    

    这显然是错误的……但是如何撤消呢?因为我后来错误地执行了“rake db:migrate”,我想我们可以用一个简单的命令来删除它。错了,但幸运的是,在比较了我的 github 之后,我注意到我的 routes.rb 文件的开头有所不同。

    resources :users
    

    ruby scaffold destroy 命令在 routes.rb 文件中留下了一小行,这把整个事情搞砸了。如果没有在 github 上进行比较,我永远不会注意到。以下是最初的错误,以防人们像我一样盲目地搜索它......

    `<top (required)>': undefined method `resources' for main:Object (NoMethodError)
    
    warning: circular argument reference - now
    
    
    mirv@rorblog:~/workspace/workspace (master) $ rails s -p $PORT -b $IP
        /usr/local/rvm/gems/ruby-2.2.1/gems/activesupport-4.1.0/lib/active_support/values/time_zone.rb:285: warning: circular argument reference - now
        => Booting WEBrick
        => Rails 4.1.0 application starting in development on http://0.0.0.0:8080=> Run `rails server -h` for more startup options
        => Notice: server is listening on all interfaces (0.0.0.0). Consider using 127.0.0.1 (--binding option)
        => Ctrl-C to shutdown server
        Exiting
        /home/ubuntu/workspace/config/routes.rb:2:in `<top (required)>': undefined method `resources' for main:Object (NoMethodError)
                from /usr/local/rvm/gems/ruby-2.2.1/gems/activesupport-4.1.0/lib/active_support/dependencies.rb:241:in `load'
                from /usr/local/rvm/gems/ruby-2.2.1/gems/activesupport-4.1.0/lib/active_support/dependencies.rb:241:in `block in load'
                from /usr/local/rvm/gems/ruby-2.2.1/gems/activesupport-4.1.0/lib/active_support/dependencies.rb:232:in `load_dependency'
                from /usr/local/rvm/gems/ruby-2.2.1/gems/activesupport-4.1.0/lib/active_support/dependencies.rb:241:in `load'
                from /usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.1.0/lib/rails/application/routes_reloader.rb:40:in `block in load_paths'
                from /usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.1.0/lib/rails/application/routes_reloader.rb:40:in `each'
                from /usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.1.0/lib/rails/application/routes_reloader.rb:40:in `load_paths'
                from /usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.1.0/lib/rails/application/routes_reloader.rb:16:in `reload!'
                from /usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.1.0/lib/rails/application/routes_reloader.rb:26:in `block in updater'
                from /usr/local/rvm/gems/ruby-2.2.1/gems/activesupport-4.1.0/lib/active_support/file_update_checker.rb:75:in `call'
                from /usr/local/rvm/gems/ruby-2.2.1/gems/activesupport-4.1.0/lib/active_support/file_update_checker.rb:75:in `execute'
                from /usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.1.0/lib/rails/application/routes_reloader.rb:27:in `updater'
                from /usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.1.0/lib/rails/application/routes_reloader.rb:7:in `execute_if_updated'
                from /usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.1.0/lib/rails/application/finisher.rb:71:in `block in <module:Finisher>'
                from /usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.1.0/lib/rails/initializable.rb:30:in `instance_exec'
                from /usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.1.0/lib/rails/initializable.rb:30:in `run'
                from /usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.1.0/lib/rails/initializable.rb:55:in `block in run_initializers'
                from /usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/tsort.rb:226:in `block in tsort_each'
                from /usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/tsort.rb:348:in `block (2 levels) in each_strongly_connected_component'
                from /usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/tsort.rb:429:in `each_strongly_connected_component_from'
                from /usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/tsort.rb:347:in `block in each_strongly_connected_component'
                from /usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/tsort.rb:345:in `each'
                from /usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/tsort.rb:345:in `call'
                from /usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/tsort.rb:345:in `each_strongly_connected_component'
                from /usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/tsort.rb:224:in `tsort_each'
                from /usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/tsort.rb:203:in `tsort_each'
                from /usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.1.0/lib/rails/initializable.rb:54:in `run_initializers'
                from /usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.1.0/lib/rails/application.rb:288:in `initialize!'
                from /home/ubuntu/workspace/config/environment.rb:5:in `<top (required)>'
                from /home/ubuntu/workspace/config.ru:3:in `require'
                from /home/ubuntu/workspace/config.ru:3:in `block in <main>'
                from /usr/local/rvm/gems/ruby-2.2.1/gems/rack-1.5.3/lib/rack/builder.rb:55:in `instance_eval'
                from /usr/local/rvm/gems/ruby-2.2.1/gems/rack-1.5.3/lib/rack/builder.rb:55:in `initialize'
                from /home/ubuntu/workspace/config.ru:in `new'
                from /home/ubuntu/workspace/config.ru:in `<main>'
                from /usr/local/rvm/gems/ruby-2.2.1/gems/rack-1.5.3/lib/rack/builder.rb:49:in `eval'
                from /usr/local/rvm/gems/ruby-2.2.1/gems/rack-1.5.3/lib/rack/builder.rb:49:in `new_from_string'
                from /usr/local/rvm/gems/ruby-2.2.1/gems/rack-1.5.3/lib/rack/builder.rb:40:in `parse_file'
                from /usr/local/rvm/gems/ruby-2.2.1/gems/rack-1.5.3/lib/rack/server.rb:277:in `build_app_and_options_from_config'
                from /usr/local/rvm/gems/ruby-2.2.1/gems/rack-1.5.3/lib/rack/server.rb:199:in `app'
                from /usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.1.0/lib/rails/commands/server.rb:50:in `app'
                from /usr/local/rvm/gems/ruby-2.2.1/gems/rack-1.5.3/lib/rack/server.rb:314:in `wrapped_app'
                from /usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.1.0/lib/rails/commands/server.rb:130:in `log_to_stdout'
                from /usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.1.0/lib/rails/commands/server.rb:67:in `start'
                from /usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.1.0/lib/rails/commands/commands_tasks.rb:81:in `block in server'
                from /usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.1.0/lib/rails/commands/commands_tasks.rb:76:in `tap'
                from /usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.1.0/lib/rails/commands/commands_tasks.rb:76:in `server'
                from /usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.1.0/lib/rails/commands/commands_tasks.rb:40:in `run_command!'
                from /usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.1.0/lib/rails/commands.rb:17:in `<top (required)>'
                from /home/ubuntu/workspace/bin/rails:8:in `require'
                from /home/ubuntu/workspace/bin/rails:8:in `<top (required)>'
                from /usr/local/rvm/gems/ruby-2.2.1/gems/spring-1.3.6/lib/spring/client/rails.rb:28:in `load'
                from /usr/local/rvm/gems/ruby-2.2.1/gems/spring-1.3.6/lib/spring/client/rails.rb:28:in `call'
                from /usr/local/rvm/gems/ruby-2.2.1/gems/spring-1.3.6/lib/spring/client/command.rb:7:in `call'
                from /usr/local/rvm/gems/ruby-2.2.1/gems/spring-1.3.6/lib/spring/client.rb:26:in `run'
                from /usr/local/rvm/gems/ruby-2.2.1/gems/spring-1.3.6/bin/spring:48:in `<top (required)>'
                from /usr/local/rvm/gems/ruby-2.2.1/gems/spring-1.3.6/lib/spring/binstub.rb:11:in `load'
                from /usr/local/rvm/gems/ruby-2.2.1/gems/spring-1.3.6/lib/spring/binstub.rb:11:in `<top (required)>'
                from /home/ubuntu/workspace/bin/spring:13:in `require'
                from /home/ubuntu/workspace/bin/spring:13:in `<top (required)>'
                from bin/rails:3:in `load'
                from bin/rails:3:in `<main>'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-23
      • 2015-01-23
      • 2023-03-11
      • 1970-01-01
      • 2012-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多