基于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
时,什么都没有发生。
但是,在控制台中执行记录时,记录计数和创建工作都很好。
那么,我想念什么? 非常感谢你的帮助!
答案 0 :(得分:0)
您引擎的seed.rb
必须位于其db/
文件夹中。 Here's an excellent example是具有不同引擎的Rails应用。
答案 1 :(得分:0)
尝试rake db:seed_engine
或rails 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
命令。