Désactiver ActiveRecord pour les Rails 4
Je veux désactiver ActiveRecord dans les Rails 4. Je n'ai la suite dans config/application.rb
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
J'ai une erreur de
/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)
- Pourquoi ne pas simplement utiliser
rails new ... -O
pour désactiver activerecord? - Est le app_middleware.supprimer nécessaire, pourrait même être à l'origine du problème?
Vous devez vous connecter pour publier un commentaire.
Si vous créez une nouvelle application, vous pouvez utiliser
-O
de sauter ActiveRecord:Pour les applications existantes:
1. Supprimer la base de données de l'adaptateur de pierres précieuses à partir de votre Gemfile (mysql2, sqlite3, etc.)
2. Changer votre
config/application.rb
Supprimer
require 'rails/all
ligne et nécessitent des cadres vous voulez utiliser, par exemple:Supprimer
config.active_record.raise_in_transactional_callbacks = true
deconfig/application.rb
3. Supprimer votre
config/database.yml
fichier,db/schema.rb
et des migrations (le cas échéant)4. Supprimer la migration vérifier dans
test/test_helper.rb
5. Supprimer tout ActiveRecord configuration de votre
config/environments
fichiers (c'est ce qui est la cause de votre erreur)C'est tout ce que vous devez faire pour un vide application Rails. Si vous rencontrer des problèmes causés par votre code existant, trace de la pile devrait vous donner suffisamment d'informations sur ce que vous avez besoin de changer. Vous pourriez par exemple avoir une certaine ActiveRecord de configuration dans votre initialiseurs.
require 'rails/all'
comprend peut être trouvé ici.rails new my_app -O
il y a un mois. Maintenant, je veux l'enregistrement actif en arrière. Que sont les fichiers/gems/configuration-je besoin d'ajouter maintenant?require 'active_model'
dans l'application.rb (je suis en utilisant les validations de Activerecord, mais pas la db interactions de ActiveRecord).config.active_record.raise_in_transactional_callbacks = true
deconfig/application.rb
.Salut c'est ce que les rails par défaut nouvelles new_app -O donne
à l'intérieur de votre config/application.rb
En outre, il est livré sans base de données.yml et PAS de db/migrate/* et schéma.rb
require "action_cable/engine"
Puisque c'est encore le premier succès lors de la recherche de Google pour la désactivation de l'enregistrement actif pour les Rails 5, je vais ajouter ici:
Pour Les Rails 5
Faire toutes les étapes de @mechanicalfish réponse, mais aussi supprimer la ligne
de
Pour ceux qui utilisent le gemme rails-api vous pouvez rencontrer une erreur similaire lors de l'utilisation de la
--skip-active-record
drapeau lorsrails-api new my_api
. Le correctif en cours (jusqu'à ce qu'une nouvelle version corrigée de la gemme est libéré) est à modifier votre gemme rails-api avoir ce commit. Utilisationbundle open
et remplacer l'ancienGemfile
avec la nouvelle corrigées. Réexécutez et vous devriez être tous ensemble.Pour désactiver ActiveRecord dans les Rails 4.2 vous pouvez créer config/initializers/middleware.rb
Voir le terminal râteau middleware
Pour Les Rails 5:
Si vous générez une nouvelle application
Utilisation
--skip-active-record
option pour générer une demande en l'absence d'une base de données:rails new myApp --skip-active-record
Pour les Rails de Plugins (ou de pierres précieuses) avec un
spec/dummy
applicationLorsque votre application rails, vit dans
spec/dummy
et vous démarrez votre serveur à partir du plugin-répertoire de racine. Vous pouvez toujours obtenir de l'erreur suivante:Pour éviter cela, retirez
require rails/all
à l'intérieur du fichierbin/rails
et nécessitent des cadres vous voulez utiliser, par exemple:Pour Ruby on Rails de la version 5.1.x