Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 未初始化常量HomeController_Ruby On Rails - Fatal编程技术网

Ruby on rails 未初始化常量HomeController

Ruby on rails 未初始化常量HomeController,ruby-on-rails,Ruby On Rails,好的,我一直在关注: 以下是迄今为止我必须完成的步骤: rails new survey <install the script stuff he includes> rails g nifty:layout rails g nifty:scaffold survey name:string rake db:migrate rails新调查 rails g漂亮:布局 rails g漂亮:脚手架测量名称:字符串 rake数据库:迁移 我更新了routes.rb,指向home#in

好的,我一直在关注:

以下是迄今为止我必须完成的步骤:

rails new survey
<install the script stuff he includes>
rails g nifty:layout
rails g nifty:scaffold survey name:string
rake db:migrate
rails新调查
rails g漂亮:布局
rails g漂亮:脚手架测量名称:字符串
rake数据库:迁移
我更新了routes.rb,指向home#index(而不是原来的欢迎索引),并删除了public/index.html

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

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

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

编辑:

好的,所以我解决了这个问题,我想我困惑的地方是我的路线应该指向哪里,以查看我刚才使用上述命令创建的调查。现在我指的是我家的索引,它应该指向哪里

编辑#2:调查内容_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
class SurveysController“新建”
结束
结束
定义编辑
@survey=survey.find(参数[:id])
结束
def更新
@survey=survey.find(参数[:id])
如果@survey.update_属性(参数[:survey])
flash[:notice]=“已成功更新调查。”
将_重定向到@survey
其他的
呈现:操作=>“编辑”
结束
结束
def销毁
@survey=survey.find(参数[:id])
@摧毁
flash[:notice]=“已成功销毁调查。”
将\u重定向到调查\u url
结束
结束

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

rails generate controller home index

修复了该问题。

当routes.rb指向
home#index
时,应用程序/控制器文件夹中需要一个HomeController


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

在application.html.erb文件中粘贴类似的内容

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

您可以通过访问localhost:3000/surveys

查看所有调查/app/controllers/*的内容以及routes.rb文件的外观?app/controllers包含应用程序控制器、主页控制器和调查控制器(我假设主页控制器在运行下面的命令“应答”之前不存在),在surveys#U controller中查看时,没有给我任何指示routes.rb应该是什么样子,我已经尝试了surveys#new、survey#index和其他一些迭代,但似乎仍然不起作用。请尝试从命令行运行nin
rake routes
,看看您有哪些路由可用谢谢,我在几分钟前就知道了这一部分,但我仍然不确定我需要指向routes.rb什么来查看应该生成的调查…我应该将其指向“调查”吗?没有骰子,我尝试了调查#new,并获得了新错误的未定义方法。如果有帮助,我在控制器代码中添加了,由于某种原因,surveys不起作用或者返回错误:ArgumentError missing:action Rails.root:/home/onaclov/ECE595/survey Application Trace | Framework Trace | Full Trace如果您访问/surveys/?会发生什么?我现在很忙,我尝试下载源代码并查看它,当我尝试重新启动Rails服务器时,它说“missing:action”和当我尝试db:migrate相同的东西时…SurveysController中的NoMethodError#为Survey:Module索引未定义的方法'all'--这是我在页面上看到的错误…”它需要有一些东西“这是什么意思?请你更清楚一点好吗?老实说,已经7年了,当时我在一个班上用了一个星期的rails,现在我只能说明,当rails运行时,它使用它的搜索路径,你需要为home#index生成一个控制器,上面的命令就是这样做的,但7年前又是这样。别忘了
resources :surveys
root :to => "home#index"