Создайте другое приложение для rack из задачи Rails rake

#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 Вызов выполняется в подоболочке, и это не кажется достаточно «чистым».