Вопрос по ruby-on-rails-4, ruby-on-rails – Rails 4 не обнаруживает приложение

15

После обновления до Rails 4 яя пытаюсь запустить сервер, но он выигралт начать. Проще говоря, приложение некажется, не получилосьобнаружен»Как будто там нет приложения.

~ $ bundle exec rails server
Usage:
  rails new APP_PATH [options]

Options:
  -r, [--ruby=PATH]              # Path to the Ruby binary of your choice
                                 # Default: /app/vendor/ruby-2.0.0/bin/ruby
  -b, [--builder=BUILDER]        # Path to some application builder (...
  -m, [--template=TEMPLATE]      # Path to some application template (...
      [--skip-gemfile]           # Don't create a Gemfile
  -B, [--skip-bundle]            # Don't run bundle install

Что странно, так это то, что (более старый) системный гем заставит его нормально запускаться, но не с Bundler.

Почему выигралрельсы начинаются?

Я пытался перемещаться по исходному коду CLI, но я не могучто хватитпродолжается

(Использование Edge Rails 4.0.0.beta и Ruby 2.0.0.rc)

Если тыинтересно, здесьсписок каталогов:

~ $ ls
app  config db    Gemfile   lib  mock    Rakefile   script  tmp
bin  config.ru  features  Gemfile.lock  log  public  README.md  spec    vendor
Вы, скорее всего, правы. Я думаю, что дело в том, что яЯ использую Edge, поэтому код загрузки может измениться в любое время. Я'м разбирается, запустивbundle exec rails new, Я'Надеюсь, скоро выложу решение. Jonathan Allard
Есть ли различия в версиях системного гема и гема Бандлера? С какой версией вы создали приложение Rails? Похож на тебя'мы пытаемся загрузить приложение Rails с версией, отличной от той, которую генерируют реальные приложения. Novae

Ваш Ответ

3   ответа
0

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

1

тивности; о)) Я 'мы сделали выводне использует Bundle при запуске Rails сервер.

Rails 4.0.0.betaменяет способ загрузки, Но, так как я использовал свой "старый» версия Rails, более старая 4.0.0-бета, которую я лежал в своих локальных драгоценных камнях, которая неу меня нет изменений, я нене заметил, когда было сделано изменение в моей связке.

Теперь, когда пришло время для развертывания, обязательныйbundle-exec не мог»не загружается, потому что мой код использовался для загрузки по-старому.

Решение

Сделайте как сообщение говорит:bundle exec rails new ., И используйте Bundle на этот раз! В этот момент Rails сгенерирует шаблонный материал, а именно отсутствующие загрузочные файлы, такие как../bin/rails

Он также обновит некоторые файлы конфигурации и попытается перезаписать некоторые данные. В моем случае все проверяется в системе контроля версий, поэтомунемного различийи выбрать, перезаписать или нет и вернуться после.

Может быть, лучшая идея (у меня нетнадоело бы) разветвляться в Git, запустить "Обновить" rails-newперезаписать все, зафиксировать это, а затем выполнить трехстороннее слияние с основной веткой.

35

К счастью, ты ненужно бежатьrails-new, поскольку для этого есть удобная задача.

Примечания к выпуску Rails 4:

6,1Заметные измененияВаше приложениеИсполняемые файлы теперь живут вbin/ реж. Бежатьrake rails:update:bin получить ,bin/bundlebin/rails, а также .bin/rake
Это сработало для меня. Спасибо. Karl
Спасибо за это. Хоть сегодня вечеромРазвертывание по-прежнему не удалось в конце. red

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