所以我正在开发一个新项目,它似乎是使用新引擎功能的绝佳选择。正如引擎所说,它自己的小应用程序,具有自己的视图和控制器和模型。这是我即将到来的地方。
我创建了我的测试应用程序,我将在其中安装新引擎。
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?我试过运行以下但似乎没有发生任何事情,我检查了数据库,表格不存在。
回顾一下,我需要知道如何在引擎中创建迁移,并且能够正确地在父应用数据库上运行它们。
感谢您提供任何帮助和指导。
答案 0 :(得分:4)
因此,我阅读的所有教程都未指定您需要在引擎的根级别内运行脚本/ rails生成。我一直看到引用告诉我转到测试/虚拟应用程序。从我的引擎的根目录运行脚本/ rails生成模型[fields]后,它创建了相应的模型,迁移rake任务,我能够运行
rake my_engine:install:migrations; rake db:migrate
运行迁移
答案 1 :(得分:0)
您可以将生成器与引擎目标一起使用:
bin/engem ENGINE_NAME rails g GENERATOR