什麼是正確的方式來管理基於Rails版本的寶石中的條件流?正確的方式來測試Rails版本的寶石創作
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
什麼是正確的方式來管理基於Rails版本的寶石中的條件流?正確的方式來測試Rails版本的寶石創作
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
滑軌定義常量Rails::VERSION
下用於各種補丁級別:MAJOR
,MINOR
,TINY
和PRE
(如果適用)。版本字符串是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所以他們應該是安全的使用您的創業板公司的許可依賴規範。
難道你不在你的Gemfile中指定你的Rails版本嗎? – Nobita
我正在編寫一個gem,它需要將Rails從2.x版本支持到4.x.不幸的是,Rails 4改變了其中一個核心ActiveSupport組件(實際上已將它分解爲自己的寶石),所以我需要更改Rails 4的Gem行爲(對於2.x版本,它仍然可以正常工作 - 3.x )。 –
我不知道你是否可以做到這一點..我的想法是,一旦你的寶石建成,Rubygems將運行該代碼並創建它的靜態表示... – Nobita