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

时间:2013-07-02 18:54:54

标签: ruby-on-rails gem

基于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

2 个答案:

答案 0 :(得分:18)

Rails为Rails::VERSION下的各种补丁级别定义常量:MAJORMINORTINYPRE(如果适用)。版本字符串为constructed from these integers,您可以直接使用它们:

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

这些返回to at least Rails 2.0.x所以它们应该可以安全地用于你的宝石允许的依赖规范。

答案 1 :(得分:0)

就个人而言,我认为Rails.version =~ /^4/读得更好。