Jetzt, da Rails 3 Beta herauskommt, dachte ich, ich würde mir überlegen, eine App neu zu schreiben, an der ich gerade in Rails 3 Beta gearbeitet habe, um ein Gefühl dafür zu bekommen und einen Vorsprung zu bekommen. Die App verwendet MongoDB und MongoMapper für alle Modelle und benötigt daher ActiveRecord nicht. In der vorherigen Version entlade ich Activerecord folgendermaßen:
config.frameworks -= [ :active_record ] # inside environment.rb
In der neuesten Version funktioniert dies nicht - es wird nur ein Fehler ausgegeben:
/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*
Natürlich habe ich mir die boot.rb so angesehen, wie es vorgeschlagen wurde, aber soweit ich sehen kann, gibt es hier keinen Hinweis darauf, wie ich AR entladen könnte. Der Grund, warum ich dies tun muss, ist, dass es nicht nur albern ist, etwas zu laden, das ich nicht möchte, sondern dass es sich über die Unfähigkeit beschwert, eine DB-Verbindung herzustellen, selbst wenn ich versuche, einen Generator für eine Steuerung zu betreiben. Dies liegt daran, dass ich es gelöscht database.yml
und durch Verbindungsdetails für MongoDB ersetzt habe, um diesen Kern für die Verwendung von database.yml für MongoDB-Verbindungsdetails zu verwenden. Ich bin mir nicht sicher, warum es überhaupt in der Lage sein muss, eine DB-Verbindung herzustellen, um trotzdem einen Controller zu generieren.
Ist jemandem bekannt, wie Rails 3 dies richtig macht?
quelle
require "sprockets/railtie"
in Ihrerapplication.rb
Datei haben.--skip-active-record
. Beachten Sie den zusätzlichen Strich.Schienen 4
Ich habe nach einer Möglichkeit zum Deaktivieren in Schienen 4 gesucht und nur diese Antwort gefunden, die in Schienen 4 nicht mehr funktioniert. So können Sie dies in Schienen 4 tun (getestet in RC1).
In einem neuen Projekt
In einem bestehenden Projekt
gem 'sqlite3'
odergem 'pg'
.In config / application.rb, ersetzen
require 'rails/all'
mitEntfernen oder kommentieren Sie in config / environment / development.rb
config.active_record.migration_error = :page_load
Möglicherweise müssen Sie die Helfer von active_record aus dem spec_helper entfernen (über VenoM in den Kommentaren).
Möglicherweise müssen Sie die ConnectionManagement-Middleware entfernen (scheint bei Einhörnern der Fall zu sein):
config.app_middleware.delete "ActiveRecord::ConnectionAdapters::ConnectionManagement"
(über https://stackoverflow.com/a/18087332/764342 )Ich hoffe, dies hilft anderen bei der Suche nach einer Deaktivierung von ActiveRecord in Rails 4.
quelle
Bei einer neuen Rails-App können Sie den aktiven Datensatz ausschließen, indem Sie den Parameter --skip-active-record angeben. Z.B:
quelle
Wenn Sie mit Rails 3.2 ein neues Projekt erstellt haben, müssen Sie außerdem Folgendes auskommentieren:
und
in Ihrer Datei development.rb .
quelle
Alle oben genannten sind wahr. Das einzige, was ich in Rails 3.1 noch tun musste, ist das Auskommentieren
in
config/application.rb
.quelle
Wenn Sie rspec ausführen, müssen Sie auch entfernen (in spec_helper):
und entfernen
quelle
Auch Kommentar aus
(auf Schienen 3.2.13 vermerkt)
quelle