2010-12-03 27 views
6

Est-ce que Rails 3 enlève le métal? J'essaye d'implémenter Mongoid, Carrierwave et grid_fs. J'ai suivi le guide 1.Est-ce que Rails 3 enlève le métal?

Cependant, j'ai lu que Rails 3 enlève le métal (http://github.com/rails/rails/commit/ed34652d1aca148fea61c5309c1bd5ff3a55abfa).

Alors je suis tombé sur cet article à la place: guide 2

Compte tenu des circonstances que Rails 3 peut être enlèvement métal et pour l'entretien futur. Quel guide est le plus approprié pour que grid_fs, Mongoid et Carrierwave travaillent ensemble?

Répondre

16

Vous avez remarqué un commit avec le commentaire "Suppression de Metal from Rails 3." Cependant, ce qui se passe est en fait le opposé de cette expression! Rails 3 n'a pas supprimer métal. Plutôt l'inverse. Maintenant, all controllers are metals, avec seulement les fonctionnalités supplémentaires que vous demandez. Tout ce que vous devez faire est d'hériter de votre classe de contrôleur particulier de ActionController::Metal, puis include des modules particuliers qui fournissent les fonctionnalités supplémentaires que vous souhaitez dans ce contrôleur particulier.

Bien sûr, la plupart des gens hériteront de leurs contrôleurs de ActionController::Base. Mais maintenant, ActionController::Base hérite simplement ActionController::Metal et inclut tous les modules de fonctionnalités supplémentaires.

Cet engagement que vous avez remarqué est l'élimination des métaux en tant que séparée, à l'exception du reste de ActionPack. Maintenant, les métaux ne sont plus une fonctionnalité séparée, de sorte que l'implémentation fonctionnalité distincte de métaux a été supprimée. Maintenant, tout est un métal.

+0

Merci d'avoir clarifié cela –