Rails引擎/如何使用种子?

jak*_*obk 13 ruby-on-rails seed rails-engines

我创建了一个Rails引擎.我在使用种子命令时遇到问题,如果我运行rake db:seed我得到错误:"uninitialized constant".

在引擎中,我得到了一个种子.rb:

Page.create(:title => 'Frontpage', :order => '1')

然后在我的虚拟应用程序中,我得到了一个seed.rb

cms::Engine.load_seed   
Run Code Online (Sandbox Code Playgroud)

(cms是引擎的名称) - 我现在得到了一个错误,那就是"未初始化的常量".如何从虚拟应用程序引用常量?

jak*_*obk 24

好的,我知道了!- 答案是:

在引擎中,在db文件夹中添加seeds.rb,将应用程序名称添加到每个常量,如下所示:

Cms::Page.create(:title => 'Frontpage', :order => '1')
Run Code Online (Sandbox Code Playgroud)

在虚拟应用程序或添加引擎的应用程序中,将seeds.rb添加到db文件夹,其中包含:

Cms::Engine.load_seed
Run Code Online (Sandbox Code Playgroud)

并运行:

rake db:seed 
Run Code Online (Sandbox Code Playgroud)

在终端.

  • 有没有办法自动执行此过程,而不是手动添加load_seed方法.我想知道可以添加和删除gem的用例. (4认同)