Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.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 RubyonRails部署-我应该使用什么版本的RoR?_Ruby On Rails_Ruby_Deployment_Heroku_Production - Fatal编程技术网

Ruby on rails RubyonRails部署-我应该使用什么版本的RoR?

Ruby on rails RubyonRails部署-我应该使用什么版本的RoR?,ruby-on-rails,ruby,deployment,heroku,production,Ruby On Rails,Ruby,Deployment,Heroku,Production,我是RubyonRails的新手,在RoR应用程序的部署方面遇到了一些问题 编辑1:试图缩小问题的范围。我不确定我在部署我的基本Ruby应用程序时遇到的问题是由于我错误的设置和编码,还是由于我目前使用的RubyonRails版本中的冲突 重新表述问题:我应该使用什么版本的RubyonRails?作为框架的新手,我只希望我的部署过程尽可能顺利。如果3.2是官方下载(截至2012年1月20日),那么使用安全吗?我是否应该使用最新的Ruby稳定版本(1.9.3-p0)?书籍和著作中提到的宝石呢?我应该

我是RubyonRails的新手,在RoR应用程序的部署方面遇到了一些问题

编辑1:试图缩小问题的范围。我不确定我在部署我的基本Ruby应用程序时遇到的问题是由于我错误的设置和编码,还是由于我目前使用的RubyonRails版本中的冲突

重新表述问题:我应该使用什么版本的RubyonRails?作为框架的新手,我只希望我的部署过程尽可能顺利。如果3.2是官方下载(截至2012年1月20日),那么使用安全吗?我是否应该使用最新的Ruby稳定版本(1.9.3-p0)?书籍和著作中提到的宝石呢?我应该总是使用最新的吗?

老话
我跟在后面。按照书中的说明,我尝试部署,但运气不佳。Heroku日志的打印输出提供:

2012-01-22T18:26:09+00:00 app[web.1]: Started GET "/pages/about" for 90.231.141.39 at  
2012-01-22T18:26:09+00:00 app[web.1]: cache: [GET /pages/about] miss
2012-01-22T18:26:09+00:00 app[web.1]: ActiveRecord::ConnectionNotEstablished   
(ActiveRecord::ConnectionNotEstablished):
此应用程序此时不使用任何数据库(仅显示静态页面)。所以对我来说,ActiveRecord的错误并不奇怪。但不确定这是否是问题的根源。我最初认为这个问题与Heroku有关,因为我的
rails服务器
部署工作正常,但是我发现
rails服务器-e生产
命令可以在生产环境中运行rails服务器。在Rails 3.1.3下,这将正确呈现页面,但我在服务器日志中仍然收到以下错误消息:

sample_app$ rails server -e production
=> Booting WEBrick
=> Rails 3.1.3 application starting in production on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2012-01-22 23:07:28] INFO  WEBrick 1.3.1
[2012-01-22 23:07:28] INFO  ruby 1.9.3 (2011-10-30) [x86_64-darwin11.2.0]
[2012-01-22 23:07:28] INFO  WEBrick::HTTPServer#start: pid=57161 port=3000
cache: [GET /] miss
cache: [GET /pages/about] miss
Started GET "/pages/about" for 127.0.0.1 at 2012-01-22 23:09:50 +0100
Processing by PagesController#about as HTML
Rendered pages/about.html.erb within layouts/application (2.0ms)
Completed 200 OK in 24ms (Views: 24.2ms | ActiveRecord: 0.0ms)
cache: [GET /assets/application-cd728f3a08415c27ca2e753d30091c74.css] miss
在我看来,似乎存在某种路由问题。但是,我缺乏RoR方面的知识和经验,这使得我在寻找实际错误时一筹莫展

升级到Rails 3.2.0使问题更加严重。我为Rails 3.2制作了一个示例应用程序,基本上包括:

rails new test_app
进入“test_app”文件夹并运行
rails服务器-e产品
(使用
Ruby 1.9.3-p0
)。这次甚至没有呈现默认的RubyonRails索引页面。服务器日志为我提供:

heroku_test$ rails server -e production
=> Booting WEBrick
=> Rails 3.2.0 application starting in production on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2012-01-22 23:19:07] INFO  WEBrick 1.3.1
[2012-01-22 23:19:07] INFO  ruby 1.9.3 (2011-10-30) [x86_64-darwin11.2.0]
[2012-01-22 23:19:07] INFO  WEBrick::HTTPServer#start: pid=63242 port=3000
cache: [GET /] miss
所以,似乎在所有情况下,我的路由、缓存或wathever都有一些问题

这些是我的规格:

System specs: Mac OS X Lion 10.7.2
Ruby: 1.9.3-p0
Rails: 3.1.3 (and also 3.2.0 release the other day)
我非常清楚这些规范不是RubyonRails教程所建议的。RoR教程的编写考虑了以下规格:

Ruby: 1.9.2 (or 1.8.7)
Rails: 3.0.11
在中,Hartl解释了与Rails 3.1.x的区别,并为示例应用程序提供了升级指南。我浏览了这一章(因为我被困在第三章中),但一直找不到解决问题的方法

我的问题到底是什么? 对于在我的系统上运行的RoR版本,如何将RoR应用程序部署到生产环境中

到目前为止,除了RoR.org和Heroku.com上的常规页面外,我还浏览了相关链接和来源:


@jollyCocoa,部署到Heroku时出现的错误是由于未设置数据库造成的。即使您没有使用数据库,如果您配置了数据库连接,它也会修复此错误。但是,如果您刚开始使用RoR,并且只想尝试一些东西,那么此时不要尝试部署到Heroku。只需从本地运行的一个非常简单的应用程序开始,甚至只需“rails new”生成的“骨架”应用程序,然后一步一小步地进行更改,每一步都检查应用程序是否仍在工作。如果您陷入困境,无法确定如何使某项功能正常工作,您可以发布一个更具体的问题。

问题已经改变:

“我应该使用什么版本的Ruby on Rails?作为框架的新手,我只希望我的部署过程尽可能顺利。”

如果您是从一本书或教程中学习,请使用与该书/教程中的示例相同的版本

“书籍和著作中提到的宝石呢?我应该总是使用最新的吗?”

大多数gem都依赖于其他gem,因此您使用的确切版本通常取决于这些依赖关系。有时,您甚至可能在一个版本中发现一个bug,因此您可以切换到另一个版本来解决问题。或者,如果您正在阅读使用特定版本的书籍/教程,您可能希望使用相同的版本(至少在您阅读教程时)。但是,如果您没有充分的理由使用旧版本,那么通常应该使用最新版本


你学会如何使用Bundler了吗?它允许您控制要使用的每个gem的确切版本。

您的部署似乎已经成功,而且
about.html.erb
渲染效果很好(layouts/application(2.0ms)中的
Rendered pages/about.html.erb证明了这一点)。真正的问题是什么?当您访问
about
的url时,是否看到关于找不到数据库的错误消息?你的问题不清楚。缓存未命中不是错误消息,也不会在任何地方显示“错误”。你说它被正确渲染了(根据3.1)。实际问题是什么?您没有描述任何“严重问题”,而且看起来它正在按应有的方式工作。如果您真的想知道“如何部署到生产环境”,这里有数百个问题,internet上也有相应的问题。现在看来:太笼统了。嗯。。。我猜这可能是对将军的。当潜入一套新的工具时,这是一个正常的问题。我会尽量缩小范围,编辑并重新措辞…@Zabba:我收到了一条404页的“不退出”消息。然而,我意识到,要得到正确的答案,我可能太不具体了。我会尝试找出一个更好的问题。我意识到我的问题有点不具体。您是否认为我应该跳过部署altogehter,转而学习开发环境中的框架?我不希望最终陷入这样一种情况:我已经在开发环境中学习了框架,当我开始部署时,我完全误解了一些基本概念……是的,您最好在本地工作