Maintenant que la version bêta de Rails 3 est sortie, j'ai pensé que j'allais jeter un coup d'œil à la réécriture d'une application sur laquelle je viens de commencer à travailler dans la version bêta de Rails 3, à la fois pour en avoir une idée et pour prendre une longueur d'avance. L'application utilise MongoDB et MongoMapper pour tous ses modèles et n'a donc pas besoin d'ActiveRecord. Dans la version précédente, je décharge activerecord de la manière suivante:
config.frameworks -= [ :active_record ] # inside environment.rb
Dans la dernière version, cela ne fonctionne pas - cela génère simplement une erreur:
/Library/Ruby/Gems/1.8/gems/railties-3.0.0.beta/lib/rails/configuration.rb:126:in
`frameworks': config.frameworks in no longer supported. See the generated
config/boot.rb for steps on how to limit the frameworks that will be loaded
(RuntimeError)
from *snip*
Bien sûr, j'ai regardé le boot.rb comme il le suggérait, mais pour autant que je sache, il n'y a aucune idée ici de la façon dont je pourrais procéder pour décharger AR. La raison pour laquelle je dois le faire est que non seulement il est ridicule de charger quelque chose que je ne veux pas, mais il se plaint de son incapacité à établir une connexion DB même lorsque j'essaye de faire fonctionner un générateur pour un contrôleur. C'est parce que je l'ai effacé database.yml
et remplacé par les détails de connexion pour MongoDB afin d'utiliser cette substance pour utiliser database.yml pour les détails de connexion MongoDB. Je ne sais pas pourquoi il doit pouvoir initier une connexion de base de données juste pour générer un contrôleur de toute façon ...
Quelqu'un est-il au courant de la bonne façon de procéder pour Rails 3?
la source
require "sprockets/railtie"
dans votreapplication.rb
fichier.--skip-active-record
. Remarquez le tiret supplémentaire.Rails 4
Je cherchais comment le désactiver dans les rails 4 et je n'ai trouvé que cette réponse qui ne fonctionne plus dans les rails 4. C'est ainsi que vous pouvez le faire dans les rails 4 (testé en RC1).
Dans un nouveau projet
Dans un projet existant
gem 'sqlite3'
ougem 'pg'
.Dans config / application.rb, remplacez
require 'rails/all'
parDans config / environnements / development.rb, supprimez ou commentez
config.active_record.migration_error = :page_load
Potentiellement, vous devez supprimer les helpers active_record de spec_helper (via VenoM dans les commentaires)
Vous devez potentiellement supprimer le middleware ConnectionManagement (cela semble être le cas avec unicorn):
config.app_middleware.delete "ActiveRecord::ConnectionAdapters::ConnectionManagement"
(via https://stackoverflow.com/a/18087332/764342 )J'espère que cela aidera les autres à chercher comment désactiver ActiveRecord dans Rails 4.
la source
Pour une nouvelle application de rails, vous pouvez lui demander d'exclure l'enregistrement actif en spécifiant le paramètre --skip-active-record. Par exemple:
la source
Si vous avez généré un nouveau projet à l'aide de Rails 3.2, vous devrez également commenter:
et
dans votre development.rb fichier.
la source
Tout ce qui précède est vrai. La dernière chose que je devais faire dans les rails 3.1 est de commenter
dans
config/application.rb
.la source
Si vous exécutez rspec, vous devez également supprimer (dans spec_helper):
et supprimer
la source
Aussi commentaire sur
(noté sur les rails 3.2.13)
la source