【问题标题】:Routing error in Ruby on Rails 3Ruby on Rails 3 中的路由错误
【发布时间】:2011-11-24 03:27:50
【问题描述】:

我是 Ruby on Rails 的新手 我收到此错误

未初始化的常量 WelcomeController

创建示例项目后。我启用了

root :to => 'welcome#index'

在 routes.rb 中。

【问题讨论】:

  • 我在使用入门指南时也遇到了这个错误:guides.rubyonrails.org/getting_started.html 你必须像 Mohan Raj 在下面的评论中所说的那样将行实际更改为 home#index。您不只是取消注释该行。

标签: ruby-on-rails routes ruby-on-rails-3.1


【解决方案1】:

当你说

root :to => 'welcome#index'

您是在告诉 Rails 将所有对 / 的请求发送到 WelcomeController 中的 index 方法。错误消息告诉您您没有创建 WelcomeController 类。你应该有这样的东西:

class WelcomeController < ApplicationController
  def index
    # whatever your controller needs to do...
  end
end

app/controllers/welcome_controller.rb.

【讨论】:

  • 嗨,我找到了解决方案,只是我将 root 更改为:to => 'home#index'。我创建了控制器主页。所以设置回家的路线。
  • @MohanRaj 你应该接受这个答案,因为它是正确的。
【解决方案2】:

我对 Rails 非常陌生,在阅读 Michael Hartl 的 Rails 教程时也遇到了这个错误。我遇到的问题是在config/routes.rb 文件中,我只是取消了root :to =&gt; "welcome#index" 的注释:

# just remember to delete public/index.html.
root :to => "welcome#index"

但是对于 sample_app 的结构,“welcome#index”应该改为“pages#home”,因为一切最初都是通过“pages”控制器设置的。

root :to => 'pages#home'

它甚至就在书中,但我只是忽略了它,然后花了很长时间试图找出我错在哪里。

【讨论】:

    【解决方案3】:

    确保 WelcomeController 定义在一个名为welcome_controller.rb 的文件中

    【讨论】:

      【解决方案4】:

      rails generate controller welcome index

      【讨论】:

      • 生成器为您设置路线。 Rails.application.routes.draw 确实得到“欢迎/索引”结束
      【解决方案5】:

      如果您不生成名称为welcome 的页面,则只需生成如下页面:$ rails generate controller pagename index。然后进入: config->routes.rb 你应该编辑 root 'welcome#index'root 'pagename#index'

      【讨论】:

        【解决方案6】:

        如果您希望它在生成欢迎部分后成为您的上下文根,请保留它。

        Rails.application.routes.draw do
          root 'welcome#index'
        end
        

        【讨论】:

        • 晚了几年,少了几千年。 :-)
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多