2011-03-01 81 views
5

我正在为Rails 3.0.5升级插件,特别是this commit。实质上,ActiveRecord需要一个proc而不是一个字符串来进行条件插值。检测插件兼容性的Rails版本的最佳实践?

一般来说,我认为处理这种事情的最佳方式是调用respond_to?,但在这种情况下,所有已更改的方法都是私有的。检查rails版本的最佳做法是什么,以便插件可以为新版本提供一个proc,旧版本是一个字符串?我宁愿不检查私有方法是否存在,因为这可能会在未来破坏。

+0

从导轨2.3,你可以使用 “Rails.version” – andrea 2011-03-01 15:54:05

回答

11
Rails.version 
# => "3.0.5" 
Rails::VERSION::MAJOR 
# => 3 
Rails::VERSION::MINOR 
# => 0 
Rails::VERSION::TINY 
# => 5 
+0

比较宝石版本,检查出['宝石::版本号<=>'](https://github.com/rubygems/rubygems/blob/ fca24a695d2ee3a0bdb9702b752b34d44def6a53/LIB /的rubygems/version.rb#L330) – 2014-08-08 19:11:57