Я просто был записан, потому что я использовал 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. Я больше интересуюсь тем, чтобы заставлять ПРАВИЛЬНУЮ рубиновую версию работать. Извините за беспорядок.
Это не заставит версию Ruby требуется, но вы можете использовать что-то вроде RVM, чтобы легко управлять своей средой Ruby на ваших разработках.
Это позволяет легко переключаться и поддерживать несколько версий RUBY в вашей системе.
Это грубая сила и невежество, но один подход будет
raise "Wrong ruby version, please use ruby 1.8.7" unless RUBY_VERSION == "1.8.7"
Используйте константу 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 конец конец
Другим способом взглянуть на проблему. Мои Backports GEM приносит Ruby 1.8,6 в настоящее время в линии 1.8.x (включая предстоящие 1.8.8) и большую часть 1,9:
require "backports"
или вместо этого, для менее смелых среди нас, вы Может потребоваться только 1,8,7 возможностей:
require "backports/1.8.7"