Что не так с этим шаблоном рельсов? - PullRequest
0 голосов
/ 18 марта 2011

Я пытаюсь создать свой первый шаблон приложения Rails, и у меня возникла небольшая проблема с методом copy_file.

Сначала немного предыстории .... Очевидно, что пакет Ruby OpenSSL не поставляется с хранилищем CA, поэтому любая попытка подключиться к службе HTTPS не удастся выполнить из коробки. Обходной путь (для приложений Rails 3) - добавить строку OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE в начало вашего файла config/environment.rb. Мне нужно сделать это на лету в моем шаблоне, чтобы я мог установить jQuery.

Итак, я все понял, моя общая мысль:

  1. Сделайте резервную копию моего config/environment.rb файла.
  2. Добавить данные к оригиналу
  3. Выполнить задачу jquery:install --ui
  4. Восстановить исходный файл config/environment.rb.

См. мой шаблон Gist , строки 25..34 - соответствующий раздел.

Так что все это работает до шага # 4, который завершается ошибкой с Error: Could not find "env.orig" in any of your source paths в строке # 31.
Это ОЧЕНЬ сбивает с толку, потому что строка # 28 работает, я вижу файл env.orig на диске, так почему же не работает обратный ход?

Что я делаю не так?

Обновление 1:

После просмотра источника Thor thor\actions.rb выяснилось, что Thor использует разные пути (не путь к текущему проекту) для источника и места назначения. Кроме того, моя копия на самом деле не работала, она фактически копировала файл шаблона ERB, а не уже сгенерированный файл.

После передышки мне пришло в голову использовать правильный инструмент для работы , так что теперь у меня есть: run 'cp environment.rb environment.~' и run 'mv environment.~ environment.rb', который работает просто отлично. Я совершенно уверен, что это не будет работать на коробке с Windows без установленных инструментов Unix, но я могу жить с этим. У кого-нибудь есть лучше способ?

1 Ответ

0 голосов
/ 21 марта 2011

См. Мое Обновление, почему, но решение было использовать правильный инструмент для работы , так что теперь у меня есть: run 'cp environment.rb environment.~' и run 'mv environment.~ environment.rb', который работает просто отлично. Я вполне уверен, что это не будет работать на Windows, без установленных инструментов Unix, но я могу жить с этим.

...