9

在基于 Rails 版本的 gem 中管理条件流的正确方法是什么?

Rails 4 改变了一些东西,所以我需要基于 Rails 主要版本是 4 vs. 3 或之前有条件地流动。

我最接近的是:

if Rails.version.split(".").first.to_i < 4
    # Do the Rails 4 thing
else 
    # Do it the old way
end
4

2 回答 2

20

RailsRails::VERSION为各种补丁级别定义了常量:MAJORMINORTINYPRE如果适用)。版本字符串由这些整数构成,您可以直接使用它们:

if Rails::VERSION::MAJOR >= 4
  # Do the new thing
else
  # Do it the old way
end

这些至少可以追溯到Rails 2.0.x ,因此它们应该可以安全地用于您的 gem 允许的依赖规范。

于 2013-09-25T18:02:22.860 回答
0

个人觉得Rails.version =~ /^4/读起来好很多。

于 2013-07-02T19:56:05.897 回答