Вызовите версию Ruby

Я просто был записан, потому что я использовал find_index на массиве на моем dev поле (OSX с Ruby 1.8.7) и машина развертывания выполняет Ruby 1.8.6. (Между чем различие find_index и index? Последние работы над 1.8.7 и 1.8.6)

Так, чтобы получил меня взгляды: что лучший способ состоит в том, чтобы вынудить направляющие выполнить с определенной версией Ruby?

Так как это, вероятно, релевантно (установите несколько рубинов!), я должен знать это для OSX, но было бы полезно знать для Linux, Windows и Commodore 64 также.

Позже: Конечно, я работаю в виртуальном устройстве теперь, но я хотел бы смочь управлять своими версиями Ruby, если это возможно, на моем компьютере.

Примечание: Я не забочусь о слишком большом количестве запрещающих направляющих, работающих с неправильной версией Ruby. Я больше интересуюсь тем, чтобы заставлять ПРАВИЛЬНУЮ рубиновую версию работать. Извините за беспорядок.

6
задан johannes 21 January 2010 в 14:10
поделиться

4 ответа

Это не заставит версию Ruby требуется, но вы можете использовать что-то вроде RVM, чтобы легко управлять своей средой Ruby на ваших разработках.

http://rvm.io/

Это позволяет легко переключаться и поддерживать несколько версий RUBY в вашей системе.

5
ответ дан 9 December 2019 в 22:34
поделиться

Это грубая сила и невежество, но один подход будет

raise "Wrong ruby version, please use ruby 1.8.7" unless RUBY_VERSION == "1.8.7"
4
ответ дан 9 December 2019 в 22:34
поделиться

Используйте константу Ruby_Version в вашем контроллере приложений. Это показывает рендуринг страницы ошибки 500. Вы хотели бы настроить новую страницу в вашем общественном режиме с соответствующим сообщением.

Free_filter: check_ruby_version

def check_ruby_version Если только ruby_version == "1.8.7" Визуализация: file => file.join (Rails.public_path, '500.html'),: Состояние => 500 конец конец

1
ответ дан 9 December 2019 в 22:34
поделиться

Другим способом взглянуть на проблему. Мои Backports GEM приносит Ruby 1.8,6 в настоящее время в линии 1.8.x (включая предстоящие 1.8.8) и большую часть 1,9:

require "backports"

или вместо этого, для менее смелых среди нас, вы Может потребоваться только 1,8,7 возможностей:

require "backports/1.8.7"
1
ответ дан 9 December 2019 в 22:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: