未初始化的常量HomeController

时间:2010-12-16 02:30:23

标签: ruby-on-rails

好的,我一直在关注: http://railscasts.com/episodes/196-nested-model-form-part-1

到目前为止,我必须完成以下步骤:

rails new survey
<install the script stuff he includes>
rails g nifty:layout
rails g nifty:scaffold survey name:string
rake db:migrate

我更新了routes.rb以指向home #index(而不是那个欢迎的#index)并删除了public / index.html

当我尝试运行rails服务器并转到我的本地主机时,出现以下错误。     未初始化的常量HomeController

我迷路了,不知道这意味着什么。

有人能指出我正确的方向吗?

编辑:

好的,所以我解决了这个问题,我猜我感到困惑的地方是我的路线应该指向ge以查看我刚刚使用上述命令创建的调查。现在我指的是我家的#index,应该指向哪里?

编辑#2:Surveys_controller.rb的内容

class SurveysController < ApplicationController
  def index
    @surveys = Survey.all
  end

  def show
    @survey = Survey.find(params[:id])
  end

  def new
    @survey = Survey.new
  end

  def create
    @survey = Survey.new(params[:survey])
    if @survey.save
      flash[:notice] = "Successfully created survey."
      redirect_to @survey
    else
      render :action => 'new'
    end
  end

 def edit
    @survey = Survey.find(params[:id])
  end

  def update
    @survey = Survey.find(params[:id])
    if @survey.update_attributes(params[:survey])
      flash[:notice] = "Successfully updated survey."
      redirect_to @survey
    else
      render :action => 'edit'
    end
  end

  def destroy
    @survey = Survey.find(params[:id])
    @survey.destroy
    flash[:notice] = "Successfully destroyed survey."
    redirect_to surveys_url
  end
end

3 个答案:

答案 0 :(得分:16)

如果routes.rb指向home#index,则需要在app / controllers文件夹中有一个HomeController。

如果您完全按照教程操作,则可以指向survey#index。查看app / controllers中的surveys.rb,了解哪些页面可用。它们是使用niffty_scaffold脚本生成的。

答案 1 :(得分:8)

当你试图指向home #index时,它需要有一些东西,只需运行

rails generate controller home index

解决了这个问题。

答案 2 :(得分:3)

在你的application.html.erb文件中粘贴这样的东西

<%= link_to "Home", root_path %>
<%= link_to "Surveys", surveys_path %>

如果您没有这些路线,代码会爆炸但是您应该可以通过点击按钮查看您的调查

您的routes.rb文件应包含以下内容:

resources :surveys
root :to => "home#index"

您可以访问localhost:3000 / survey

查看所有调查