6

Rails 3 会移除 Metal 吗?

我正在尝试实现 Mongoid、Carrierwave 和 grid_fs。

我遵循了指南 1

但是,我读到 Rails 3 正在删除 Metal ( http://github.com/rails/rails/commit/ed34652d1aca148fea61c5309c1bd5ff3a55abfa )。

所以我偶然发现了这篇文章:指南2

鉴于 Rails 3 可能正在移除 Metal 并用于未来维护的情况。哪个指南更适合让 grid_fs、Mongoid 和 Carrierwave 一起工作?

4

1 回答 1

16

你注意到了一个带有“Removing Metal from Rails 3”评论的提交。然而,发生的事情实际上与那句话完全相反!

导轨 3 没有去除金属。恰恰相反。现在,所有控制器都是金属的,只有您要求的那些附加功能。您需要做的就是从 继承您的特定控制器类ActionController::Metal,然后include是任何提供该特定控制器所需附加功能的特定模块。

当然,大多数人会从ActionController::Base. 但是现在,ActionController::Base只是继承ActionController::Metal并包含了所有附加的功能模块。

您注意到的那个提交是将金属作为一个单独的功能删除,除了ActionPack. 现在,金属不再是单独的功能,因此金属的单独功能实现已被删除。现在,一切都是金属。

于 2010-12-03T03:03:14.803 回答