Rails引擎模型架构不更新

时间:2015-03-26 18:03:10

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

我目前在我的rails应用程序中有一个名为Marketplace的引擎。我正在创建一个在引擎中使用的模型,但是这个模型需要与主应用程序的数据库进行交互。

我创建了模型,并在我的engine.rb文件中添加了一些代码,以便在从主应用程序运行迁移时,也会运行引擎的迁移文件。

initializer :append_migrations do |app|
    unless app.root.to_s.match root.to_s
        config.paths["db/migrate"].expanded.each do |expanded_path|
            app.config.paths["db/migrate"] << expanded_path
        end
    end
end

一切正常,数据库识别引擎,但模型的模式文件未更新。我假设schema命令找不到合适的模型来更新。

另外,使用rails 4.

1 个答案:

答案 0 :(得分:0)

如果您使用的是rails引擎,那么您可能不希望更新Engine的模型架构。这样你理论上可以在不同的应用程序中使用引擎。在rails文档中,我学会了在rails应用程序中创建迁移,然后将迁移复制到应用程序中:

rake engine:install:migrations

然后,您可以从rails应用程序运行迁移。

Rails guide on engine migrations

虽然之前编写的代码实际上会从应用程序的引擎运行迁移,但它不会将迁移文件复制到您的应用程序中(然后引擎的重点是什么?)。