Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.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 在Rails中创建控制器_Ruby On Rails_Ruby_Model View Controller_Controller - Fatal编程技术网

Ruby on rails 在Rails中创建控制器

Ruby on rails 在Rails中创建控制器,ruby-on-rails,ruby,model-view-controller,controller,Ruby On Rails,Ruby,Model View Controller,Controller,我正在尝试使用生成脚本来创建控制器。我运行以下命令: > ruby script/generate controller Greeting 而且控制器的生成似乎没有问题。然后我向GreetingController添加了一个名为index的方法: class GreetingController < ApplicationController def index render :text => "<h1>Welcome to your first Ra

我正在尝试使用生成脚本来创建控制器。我运行以下命令:

> ruby script/generate controller Greeting
而且控制器的生成似乎没有问题。然后我向GreetingController添加了一个名为index的方法:

class GreetingController < ApplicationController
  def index
    render :text => "<h1>Welcome to your first Rails application<h1>"
  end
end
至少根据我正在读的书《RubyonRails》,它应该是有效的。知道会出什么问题吗?这本书是几年前写的,我使用的可能是更新的版本或Rails。有什么想法吗

更新以下是development.log中的内容:

/!\ FAILSAFE /!\  Sat Nov 28 22:11:12 -0500 2009
  Status: 500 Internal Server Error
  no such file to load -- mysql
    /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
    /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
    /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:156:in `require'
FYI我通过调用以下命令创建了应用程序:

rails /home/myuser/www/mynewapp -d mysql
  • 检查/log中的日志 目录它会让你走得更远 更好的错误信息
  • 我猜你得到了一个双重渲染错误——因为你 显式调用render,需要 在您的 发出召唤。-默认情况下 控制器尝试渲染视图 之后与控制器匹配的 控制器的方法完成
  • 检查/log中的日志 目录它会让你走得更远 更好的错误信息
  • 我猜你得到了一个双重渲染错误——因为你 显式调用render,需要 在您的 发出召唤。-默认情况下 控制器尝试渲染视图 之后与控制器匹配的 控制器的方法完成

  • 它正在尝试加载MySQL驱动程序。您是否编辑了config/database.yml?我的看起来像这样:

    # SQLite version 3.x
    # gem install sqlite3-ruby (not necessary on OS X Leopard)
    development:
      adapter: sqlite3
      database: db/development.sqlite3
      pool: 5
      timeout: 5000
    

    另外,切换到使用Rails的敏捷Web开发,第三版。这是一个很好的教程,尽管它是为2.2编写的,但它仍然主要适用于最新版本的rails

    它正在尝试加载MySQL驱动程序。您是否编辑了config/database.yml?我的看起来像这样:

    # SQLite version 3.x
    # gem install sqlite3-ruby (not necessary on OS X Leopard)
    development:
      adapter: sqlite3
      database: db/development.sqlite3
      pool: 5
      timeout: 5000
    

    另外,切换到使用Rails的敏捷Web开发,第三版。这是一个很好的教程,尽管它是为2.2编写的,但它仍然主要适用于最新版本的rails

    根据您发布的简短错误,如果您计划使用mysql,您可能需要检查是否安装了mysql gem

    如果您使用的是linux,请尝试:

    gem install mysql
    

    从您发布的简短错误中,如果您计划使用mysql,您可能希望检查是否安装了mysql gem

    如果您使用的是linux,请尝试:

    gem install mysql
    

    您无法加载MySQL数据库驱动程序。我猜它没有安装。你可以试试这个:

    sudo gem install mysql
    
    我猜您可能没有设置MySQL数据库。大多数人使用sqlite3进行开发。您的config/database.yml应该如下所示:

    development:
      adapter: sqlite3
      database: db/development.sqlite3
      pool: 5
      timeout: 5000
    
    如果没有安装sqlite3,只需运行

    sudo gem install sqlite3-ruby
    
    然后运行迁移,您应该已经准备好了

    rake db:migrate
    
    更新 我把这个贴在这里,这样我可以使用一些格式

    以后只要打电话:

    rails /path/to/app
    
    这将使Rails使用默认数据库sqlite3。然后,您可以在决定部署时更改生产数据库


    祝你好运。

    你无法加载MySQL数据库驱动程序。我猜它没有安装。你可以试试这个:

    sudo gem install mysql
    
    我猜您可能没有设置MySQL数据库。大多数人使用sqlite3进行开发。您的config/database.yml应该如下所示:

    development:
      adapter: sqlite3
      database: db/development.sqlite3
      pool: 5
      timeout: 5000
    
    如果没有安装sqlite3,只需运行

    sudo gem install sqlite3-ruby
    
    然后运行迁移,您应该已经准备好了

    rake db:migrate
    
    更新 我把这个贴在这里,这样我可以使用一些格式

    以后只要打电话:

    rails /path/to/app
    
    这将使Rails使用默认数据库sqlite3。然后,您可以在决定部署时更改生产数据库


    祝你好运。

    Rails假设你将使用数据库。如果在database.yml中没有给它一个有效的连接字符串,它就会被阻塞。这是一个有效的假设,因为任何真正的web应用程序都将使用数据库

    但是,如果只是想搞乱视图和控制器的工作方式,可以完全禁用数据库功能。为此,请将以下内容添加到config/environment.rb中:

    config.frameworks -= [ :active_record ]
    

    Rails假定您将使用数据库。如果在database.yml中没有给它一个有效的连接字符串,它就会被阻塞。这是一个有效的假设,因为任何真正的web应用程序都将使用数据库

    但是,如果只是想搞乱视图和控制器的工作方式,可以完全禁用数据库功能。为此,请将以下内容添加到config/environment.rb中:

    config.frameworks -= [ :active_record ]
    

    添加退货似乎没有帮助。我发布了development.log文件的前几行。如果需要,我可以发布其余的,但我怀疑第一条错误消息就是问题所在。我要调查一下……我试过他所有的,效果很好。这不是双重渲染错误。添加return似乎没有帮助。我发布了development.log文件的前几行。如果需要,我可以发布其余的,但我怀疑第一条错误消息就是问题所在。我要调查一下……我试过他所有的,效果很好。这不是双重渲染错误。development.log中有什么?看起来您将获得生产模式错误页面。“我完全尝试了你所拥有的,它对我很好。”MattMcKnight development.log现在发布在哪个版本的Ruby之上?轨道?数据库MySQL?哪个操作系统?我问这个问题是因为最新版本的Rails已经烘焙了SQLite3,而最新版本的Rails没有使用Webrick作为默认的web服务器。(他们使用Mongrel)development.log中有什么?看起来您将获得生产模式错误页面。“我完全尝试了你所拥有的,它对我很好。”MattMcKnight development.log现在发布在哪个版本的Ruby之上?轨道?数据库MySQL?哪个操作系统?我问这个问题是因为最新版本的Rails已经烘焙了SQLite3,而最新版本的Rails没有使用Webrick作为默认的web服务器。(他们用杂种狗)。是的!另外,还要确保它也存在于shell概要文件中的PATH变量中。。这样你就可以