正确的方法来测试Rails版本的gem创作

Mic*_*ang 8 gem ruby-on-rails

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

Rails 4改变了一些东西,所以我需要根据Rails主要版本为4对3或之前的条件流动.

我最接近的是:

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

Sim*_*onC 18

轨道定义了下常数Rails::VERSION为各补丁级别:MAJOR,MINOR,TINYPRE(如果适用).版本字符串由这些整数构成,您可以直接使用它们:

if Rails::VERSION::MAJOR >= 4
  # Do the new thing
else
  # Do it the old way
end
Run Code Online (Sandbox Code Playgroud)

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