如何将数据播种到Rails5引擎中?

时间:2018-08-06 16:18:22

标签: ruby-on-rails ruby-on-rails-5 rails-engines

基于edgeapi.rubyonrails.org的解释,我尝试在Rails引擎中初始化基础数据(词汇表)。我创建了2个文件:

  

db / seed.rb

if Glossary::Parameter.count==0
puts "Creating parameters"
Glossary::Parameter.create(name: 'Lines to display', value: '20', list: 'Display')
Glossary::Parameter.create(name: 'Undefined category', value: 'Undefined', list: 'Categories')
end

  

spec / dummy / seed.rb

Glossary::Engine.load_seed

当我从根目录位置或规范/虚拟位置运行rake db:seed时,什么都没有发生。 但是,在控制台中执行记录时,记录计数和创建工作都很好。

那么,我想念什么? 非常感谢你的帮助!

3 个答案:

答案 0 :(得分:0)

您引擎的seed.rb必须位于其db/文件夹中。 Here's an excellent example是具有不同引擎的Rails应用。

答案 1 :(得分:0)

尝试rake db:seed_enginerails db:seed_engine有用

答案 2 :(得分:0)

我的错误:包含种子的文件的名称为 seeds.rb ,带有S。

解决方案是:

1-更新包含应用程序的 spec / dummy / db / seeds.rb 文件:

Glossary::Engine.load_seed

2-在引擎的 db / seeds.rb 文件中,创建您的种子:

if Glossary::Parameter.count==0
puts "Creating parameters"
Glossary::Parameter.create(name: 'Lines to display', value: '20', list: 'Display')
Glossary::Parameter.create(name: 'Undefined category', value: 'Undefined', list: 'Categories')
end

3-在控制台中,跳至spec / dummy /文件夹,然后运行rake db:seed命令。