我希望在Heroku上运行我的应用程序时使用特定版本的ruby。
正如here所述,您只需在Gemfile中添加ruby "2.0.0"
之类的行。
但是,当我在本地使用RVM时,我已经在项目的根目录中的.ruby-version
文件中指定了ruby版本,该文件只包含行ruby-2.0.0-p0
。
为了避免代码重复,我希望只在一个地方指定版本,这样我才能确保在开发和Heroku中始终使用相同的版本。
有办法吗?
答案 0 :(得分:6)
Gemfile
是ruby代码,因此您可以编写一些ruby来读取.ruby-version
中的版本并将该值传递给ruby
方法,而不是硬编码的版本字符串
如果.ruby-version
文件位于同一目录中,则此类内容应该起作用:
ruby File.read(".ruby-version").strip.split("-").first
例如,如果.ruby-version
文件包含“1.9.3-p327”,那么该行将等同于:
ruby "1.9.3"
答案 1 :(得分:0)
不,您无法指定要在Heroku上使用的补丁级别 - 它们可以为您管理补丁级别。您需要跟踪其更改日志以了解修补程序级别何时更改。因此,您需要确保在本地使用相同的补丁级别,对于Ruby 2.0.0,它存在于p195。