Не удается найти базу данных из корня движка db / seeds.rb - PullRequest
0 голосов
/ 26 сентября 2011

После создания нового плагина Rails 3.1 gem через:

rails plugin new core --full

Я пытаюсь заполнить базу данных:

rake db:seed

Я сталкиваюсь со следующей ошибкой:

rake aborted!
can't convert nil into String

Перемещение файла seed.rb в каталог test / dummy / db, похоже, решает проблему. Есть ли какой-нибудь способ сообщить задаче db: seed о текущем рабочем каталоге или о том, где найти файл seed.rb? Идеальным решением было бы сохранить seed.rb в моей директории db двигателей

Ответы [ 3 ]

1 голос
/ 13 октября 2011

Я получил эту ошибку, когда допустил ошибку, назвав мой начальный файл «seed.rb», а не «seed.rb». Надеюсь, это поможет.

0 голосов
/ 13 октября 2011

Я решил это путем создания seed.rb в моей директории dummy / db. В созданный мной файл seed.rb я просто добавил:

require File.expand_path('../../../../db/seeds.rb', __FILE__)

Это в основном расширяет и запускает файл seed.rb в каталоге db engines.

Обратите внимание

  1. Я использую и --full, и --mountable, и rake db:seed не работает (плюс различные другие вещи)
  2. Я использую rspec для своих тестов, поэтому мой dummy находится в каталоге spec / dummy движка
  3. Я изменил свои грабли и рельсы, чтобы я мог заставить работать rspec

полезных постов, которые я нашел

  1. рельсовые двигатели 3.1 с rspec

Надеюсь, это поможет

0 голосов
/ 27 сентября 2011

Попробуйте создать свой движок как

rails plugin new core --full --mountable

Теперь вы сможете делать rake db:migrate из корня вашего движка.Если это не монтируемый движок, поскольку генераторы обычно развертываются в вашем приложении (в данном случае test / dummy или spec / dummy), имеет смысл запускать задачу rake из хост-приложения.

...