通过以下方式创建新的Rails 3.1 gem插件后
rails plugin new core --full
我正在尝试使用以下方式播种数据库:
rake db:seed
我遇到了以下错误:
rake aborted!
can't convert nil into String
将seeds.rb文件移动到test / dummy / db目录似乎可以解决问题。有没有办法让db:seed任务知道当前的工作目录是什么,或者在哪里找到seeds.rb文件?理想的解决方案是将seeds.rb保存在我的引擎数据库目录
中答案 0 :(得分:1)
当我错误地命名我的种子文件“seed.rb”而不是“seeds.rb”时,我收到了这个错误。希望,这有帮助。
答案 1 :(得分:0)
尝试创建引擎
rails plugin new core --full --mountable
您现在应该可以从引擎根执行rake db:migrate
了。如果它不是可安装的引擎,因为生成器通常会部署到您的应用程序(在这种情况下为test / dummy或spec / dummy),因此rake任务将从主机应用程序运行。
答案 2 :(得分:0)
我通过在dummy / db目录中创建seeds.rb来解决这个问题。在我创建的seeds.rb文件中,我刚刚添加了:
require File.expand_path('../../../../db/seeds.rb', __FILE__)
这基本上扩展并运行引擎db目录中的seeds.rb文件。
请注意
rake db:seed
无效(加上其他各种事情)我发现的有用帖子
希望这有帮助