#ruby-on-rails #rack
#ruby-on-rails #rack
Вопрос:
Мне нужно запустить приложение sinatra из задачи Rails. К сожалению, всякий раз, когда я вызываю system("shotgun")
or system("rackup")
, я получаю странные конфликтующие ошибки. Когда я запускаю их обычно из bash, тогда все работает нормально.
Ошибки достигают от shotgun is not part of the bundle
до uninitialized constant ActionController::Base (NameError)
.
Есть предложения, как я мог бы запускать другие приложения rack из приложения Rails?
Ответ №1:
Решение… хитрость заключается в том, чтобы отменить некоторые переменные оболочки:
unset BUNDLE_GEMFILE
unset RUBYOPT
unset BUNDLE_BIN_PATH
Ответ №2:
Сложно сказать, но поскольку оно запускается из bash, похоже, что существует разница между средой, в которой выполняется задача rake, и вашей средой bash.
В принципе, выясните, что в вашей среде bash требуется для того, чтобы все заработало, и воспроизведите это в среде, в которой выполняется ваша задача rake.
Комментарии:
1. Спасибо за помощь. Это Rails rake task, поэтому загружается вся среда Rails.
system
Вызов выполняется в подоболочке, и это не кажется достаточно «чистым».