生成引擎的模型和迁移

时间:2012-10-04 00:48:41

标签: ruby-on-rails ruby ruby-on-rails-3.2 ruby-on-rails-plugins

所以我正在开发一个新项目,它似乎是使用新引擎功能的绝佳选择。正如引擎所说,它自己的小应用程序,具有自己的视图和控制器和模型。这是我即将到来的地方。

我创建了我的测试应用程序,我将在其中安装新引擎。

rails new engine_app && cd engine_app

然后我创建新引擎

rails plugin new my_engine --mountable

然后我将'gem'添加到engine_app的gemfile

gem 'my_engine', :path => './my_engine'

然后我将引擎安装在engine_app的路由中,如此

mount MyEngine::Engine, :at => '/my_engine'

然后我进入my_engine的虚拟应用程序并运行

rails generate model MyModel title:string body:text

这是我遇到困惑的地方。根据我的理解,这应该生成一个命名空间表(我认为它将是my_engine_my_model)。迁移文件中的表只是my_model。

其次,如何运行此迁移,并且仅在调用表时迁移文件是否正确:my_model?我试过运行以下但似乎没有发生任何事情,我检查了数据库,表格不存在。

回顾一下,我需要知道如何在引擎中创建迁移,并且能够正确地在父应用数据库上运行它们。

感谢您提供任何帮助和指导。

2 个答案:

答案 0 :(得分:4)

因此,我阅读的所有教程都未指定您需要在引擎的根级别内运行脚本/ rails生成。我一直看到引用告诉我转到测试/虚拟应用程序。从我的引擎的根目录运行脚本/ rails生成模型[fields]后,它创建了相应的模型,迁移rake任务,我能够运行

rake my_engine:install:migrations; rake db:migrate

运行迁移

答案 1 :(得分:0)

您可以将生成器与引擎目标一起使用:

bin/engem ENGINE_NAME rails g GENERATOR