在哪里定义 Rails 应用程序的版本号 [关闭]
Posted
技术标签:
【中文标题】在哪里定义 Rails 应用程序的版本号 [关闭]【英文标题】:Where to define Rails app's version number [closed] 【发布时间】:2012-06-27 07:28:48 【问题描述】:关于如何/在哪里指定应用程序的版本号是否有任何约定?
例如,对于 ruby gem,lib/mygem/version.rb
是通常用于该目的的文件。
我的猜测是像这样创建config/version.rb
文件:
module MySite
VERSION = "0.0.4"
# or in MySite::Application class
#
# class Application
# VERSION = "0.0.4"
# end
end
【问题讨论】:
看这个:***.com/a/6178378/1352240 您可以按照我之前的回答执行此操作:***.com/a/23135266/2881964 【参考方案1】:我会回答我自己的问题,我找不到更好的答案。
由于 Rails 应用程序基本上是 MySite::Application
我认为应用程序的版本应该由 MySite::Application::VERSION
访问所以创建:
config/initializers/version.rb
module MySite
class Application
VERSION = "0.0.4"
end
end
或config/version.rb
并要求config/application.rb
提供此文件
【讨论】:
+ 要走 config/version.rb 路线,请记住将require File.expand_path('../version', __FILE__)
放在 config/application.rb 的末尾
这是个好主意,但我将其设置在 config/application.rb
文件中,因为该文件已经声明了 MySite::Application
类。如果您需要重命名您的应用程序,您实际上只更改了一处。最后,从初始化程序设置版本对我来说听起来很奇怪。
可能直接在模块上定义 MySite::VERSION
会更符合我们已经为 gem 所做的工作。【参考方案2】:
我用初始化器将我自己的版本添加到配置类中:
app_version.rb
class Configuration
class << self
attr_accessor :app_version
end
@app_version = 0.72
end
在应用内,我可以拉取版本:
@app_version = Configuration.app_version
不确定为什么要使用该版本,但我经常使用版本控制,以便查看特定版本的代码是否正在实际运行。在这种情况下,我需要将每个代码修订版本都反映为一个新版本,因此我在我的代码中使用 Git 版本,并且通常只显示它的前几个字符,因为这可能足以识别它。
@git_version = `git show --pretty=%H`[0..39]
【讨论】:
这太酷了。我如何从视图中调用它?我错过了一些东西。@version = `git log --oneline | head -1`
也可以工作 - 对我有用 ;) 只要你擅长将 *nix 命令潜入你的代码,因为这在windoze国家不会很好地传播:D跨度>
以上是关于在哪里定义 Rails 应用程序的版本号 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
方法“is_admin”在哪里?在我的 Rails 应用程序中定义?
Rails + 延迟作业:存储自定义作业类的正确位置在哪里?