it-swarm.com.de

Deaktivieren Sie ActiveRecord für Rails 4

Ich möchte ActiveRecord in Rails 4 deaktivieren. Ich habe Folgendes in config/application.rb getan

require File.expand_path('../boot', __FILE__)

# require 'Rails/all'  -- commented

require "action_controller/railtie"
require "action_mailer/railtie"
#require "active_resource/railtie" no need
#require "Rails/test_unit/railtie" no need
#require "sprockets/railtie" no need

# Require the gems listed in Gemfile, including any gems
# you've limited to :test, :development, or :production.
Bundler.require(:default, Rails.env)

module MyApp
  class Application < Rails::Application
     config.app_middleware.delete "ActiveRecord::ConnectionAdapters::ConnectionManagement"
  end
end

Durch habe ich einen Fehler von 

/home/alex/.rvm/gems/Ruby-2.0.0-p247/gems/railties-4.0.0/lib/Rails/railtie/configuration.rb:95:in 
  method_missing: undefined method active_record for #<Rails::Application::Configuration:0x00000002005c38> (NoMethodError)
104
アレックス

Wenn Sie eine neue Anwendung erstellen, können Sie ActiveRecord mit -O überspringen:

Rails new my_app -O

Für bestehende Anwendungen:

1. Entfernen Sie Datenbankadapter-Gems aus Ihrer Gemfile (mysql2, sqlite3 usw.)

2. Ändern Sie Ihren config/application.rb

Entfernen Sie die require 'Rails/all-Zeile und fordern Sie die zu verwendenden Frameworks an. Beispiel:

require "action_controller/railtie"
require "action_mailer/railtie"
require "sprockets/railtie"
require "Rails/test_unit/railtie"

config.active_record.raise_in_transactional_callbacks = true von config/application.rb entfernen

3. Löschen Sie Ihre config/database.yml-Datei, db/schema.rb und Migrationen (falls vorhanden)

4. Migrationsprüfung löschen in test/test_helper.rb

5. Löschen Sie alle ActiveRecord-Konfigurationen aus Ihren config/environments-Dateien (dies verursacht Ihren Fehler)

Dies ist alles, was Sie für eine leere Rails-App tun müssen. Wenn Sie auf Probleme stoßen, die durch Ihren vorhandenen Code verursacht wurden, sollten Sie mit dem Stack-Trace ausreichend Informationen darüber erhalten, was Sie ändern müssen. Möglicherweise haben Sie in Ihren Initialisierern einige ActiveRecord-Konfigurationen.

250
mechanicalfish

Hallo das ist, was die Default-Rails new_app -O gibt

require "Rails"
# Pick the frameworks you want: 
require "active_model/railtie" 
require "active_job/railtie"
# require "active_record/railtie" 
require "action_controller/railtie" 
require "action_mailer/railtie" 
require "action_view/railtie" 
require "sprockets/railtie" 
require "Rails/test_unit/railtie"

in Ihrer config/application.rb

Außerdem kommt es ohne database.yml und NO db/migrate/* und schema.rb

14
jasmo2

Da dies immer noch der erste Treffer ist, wenn Sie Google nach der Deaktivierung des aktiven Datensatzes für Rails 5 durchsuchen, muss ich Folgendes hinzufügen:

Für Schienen 5

Führen Sie alle Schritte in @mechanicalfish aus, aber entfernen Sie auch die Zeile 

Rails.application.config.active_record.belongs_to_required_by_default = true

von 

config/initializers/new_framework_defaults.rb
5
mmeyers

Bei Verwendung des Rails-api gem kann bei Verwendung des --skip-active-record-Flags ein ähnlicher Fehler auftreten, wenn Rails-api new my_api ausgeführt wird. Der aktuelle Fix (bis eine neue korrigierte Version des Edelsteins veröffentlicht wird) besteht darin, Ihren Rails-api-Edelstein so zu bearbeiten, dass er dieses Commit hat. Verwenden Sie bundle open und ersetzen Sie die alte Gemfile durch die neue korrigierte. Wiederholen Sie und Sie sollten fertig sein.

5

Um ActiveRecord in Rails 4.2 zu deaktivieren, können Sie config/initializers/middleware.rb erstellen

Rails.application.middleware.tap do |middleware|
  middleware.delete ActiveRecord::Migration::CheckPending
  middleware.delete ActiveRecord::ConnectionAdapters::ConnectionManagement
  middleware.delete ActiveRecord::QueryCache
end

Siehe Terminal Rechen Middleware

4
Vinicius Luiz

Für Schienen 5:

Wenn Sie eine neue App generieren

Verwenden Sie die Option --skip-active-record, um eine Anwendung ohne Datenbank zu generieren:

Rails new myApp --skip-active-record

Beachten Sie den zusätzlichen Bindestrich '-' im Gegensatz zu früheren Versionen von Rails.

4
Crimbo

Für Rails Plugins (oder Gems) mit einer spec/dummy App

Wenn Ihre Rails-App in spec/dummy lebt und Sie Ihren Server vom Plugin-Stammverzeichnis aus starten. Möglicherweise wird folgender Fehler angezeigt:

Cannot load `Rails.application.database_configuration`: Could not load database configuration. No such file - ["config/database.yml"] 

Um dies zu vermeiden, entfernen Sie require Rails/all aus der Datei bin/Rails und fordern Sie die Frameworks an, die Sie verwenden möchten. Beispiel: 

# Pick the frameworks you want: 
require "active_model/railtie" 
require "active_job/railtie"
# require "active_record/railtie" 
require "action_cable/engine"
require "action_controller/railtie" 
require "action_mailer/railtie" 
require "action_view/railtie" 
require "sprockets/railtie" 
require "Rails/test_unit/railtie"
0
rya brody