在我们现有的Rails 3应用程序中,我们使用一个重写的文件来自定义表创建行为。
在Rails 3中,通过将我们的自定义文件放置在中实现了这一点,但是在Rails 4中,似乎更改了这些模板使用的位置,并且不再使用此覆盖(创建表时使用默认的ActiveRecord迁移)。
我已经查看了4.1 ActiveRecord代码,但无法使覆盖再次起作用。
有人知道在Rails 4代码库中放置我们自定义的正确位置吗?
编辑以澄清
当您在Rails中创建新模型时,为您生成的迁移基于(> 4.1.x)中找到的模板,在 Rails gem 中。
自Rails 3.2以来,这已经发生了变化。在Rails 3.2中使用的模板称为,并位于 Rails gem 的目录中。
为了自定义生成的模板(添加将在方法中执行的自定义SQL块),我们通过在本地代码库中放置修改后的副本来覆盖此文件,并将其放置在目录下。
我们对其进行自定义以在迁移的末尾添加一些特定于应用程序的SQL。在Rails 3中,这意味着每次生成新模型时,生成的迁移都会自动包括我们的自定义SQL在迁移的末尾。
在我们的Rails 4升级中,不再使用此自定义迁移,因此我们正在获得由rails生成的香草迁移文件,并且每次都必须手动添加SQL。
我尝试遵循相同的约定并将文件放置在(以及其他各种位置),但是当生成迁移时,Rails不使用自定义模板。
在Rails 3中,通过将我们的自定义文件放置在中实现了这一点,但是在Rails 4中,似乎更改了这些模板使用的位置,并且不再使用此覆盖(创建表时使用默认的ActiveRecord迁移)。
我已经查看了4.1 ActiveRecord代码,但无法使覆盖再次起作用。
有人知道在Rails 4代码库中放置我们自定义的正确位置吗?
编辑以澄清
当您在Rails中创建新模型时,为您生成的迁移基于(> 4.1.x)中找到的模板,在 Rails gem 中。
自Rails 3.2以来,这已经发生了变化。在Rails 3.2中使用的模板称为,并位于 Rails gem 的目录中。
为了自定义生成的模板(添加将在方法中执行的自定义SQL块),我们通过在本地代码库中放置修改后的副本来覆盖此文件,并将其放置在目录下。
我们对其进行自定义以在迁移的末尾添加一些特定于应用程序的SQL。在Rails 3中,这意味着每次生成新模型时,生成的迁移都会自动包括我们的自定义SQL在迁移的末尾。
在我们的Rails 4升级中,不再使用此自定义迁移,因此我们正在获得由rails生成的香草迁移文件,并且每次都必须手动添加SQL。
我尝试遵循相同的约定并将文件放置在(以及其他各种位置),但是当生成迁移时,Rails不使用自定义模板。