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
它正在尝试加载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变量中。。这样你就可以