ruby-on-rails - que - ruby on rails tutorial
Deshabilitar ActiveRecord para Rails 4 (8)
Quiero desactivar ActiveRecord en Rails 4. Hice lo siguiente en 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
Por tener un error 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)
Para Rails 5:
Si está generando una nueva aplicación
Utilice la opción --skip-active-record
para generar una aplicación sin una base de datos:
rails new myApp --skip-active-record
Observe el guión adicional ''-'' a diferencia de las versiones anteriores de Rails.
Dado que este sigue siendo el primer golpe al buscar en Google para deshabilitar el registro activo de Rails 5, lo agregaré aquí:
Para Rails 5
Siga todos los pasos en la respuesta de @mechanicalfish, pero también elimine la línea
Rails.application.config.active_record.belongs_to_required_by_default = true
de
config/initializers/new_framework_defaults.rb
Hola, esto es lo que los rieles predeterminados new new_app -O da
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"
dentro de tu config / application.rb
Además, viene sin database.yml y SIN db / migrate / * y schema.rb
Para Ruby On Rails versión 5.1.x
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 "action_cable/engine"
require "sprockets/railtie"
require "rails/test_unit/railtie"
Para aquellos que usan la gema rails-api , puede encontrar un error similar al usar el indicador --skip-active-record
cuando se hace rails-api new my_api
. La solución actual (hasta que se publique una nueva versión corregida de la gema) es editar la gema rails-api para que tenga esta confirmación . Utilice el bundle open
y reemplace el antiguo Gemfile
con el nuevo Gemfile
corregido. Vuelve a ejecutar y deberías estar todo listo.
Para desactivar ActiveRecord en Rails 4.2, puede crear config / initializers / middleware.rb
Rails.application.middleware.tap do |middleware|
middleware.delete ActiveRecord::Migration::CheckPending
middleware.delete ActiveRecord::ConnectionAdapters::ConnectionManagement
middleware.delete ActiveRecord::QueryCache
end
Ver el middleware de rastrillo de terminal
Si está creando una nueva aplicación, puede usar -O
para omitir ActiveRecord:
rails new my_app -O
Para aplicaciones existentes:
1. Quite las gemas del adaptador de base de datos de su Gemfile (mysql2, sqlite3, etc.)
2. Cambie su config/application.rb
Quite require ''rails/all
line y requiera frameworks que quiera usar, por ejemplo:
require "action_controller/railtie"
require "action_mailer/railtie"
require "sprockets/railtie"
require "rails/test_unit/railtie"
Eliminar config.active_record.raise_in_transactional_callbacks = true
de config/application.rb
3. Elimine su archivo config/database.yml
, db/schema.rb
y migraciones (si corresponde)
4. Eliminar el control de migración en test/test_helper.rb
5. Elimine cualquier configuración de ActiveRecord de sus archivos config/environments
(esto es lo que está causando su error)
Esto es todo lo que necesita hacer para una aplicación de Rails vacía. Si se encuentra con problemas causados por su código existente, el seguimiento de la pila debe darle información suficiente sobre lo que necesita cambiar. Por ejemplo, puede tener alguna configuración de ActiveRecord en sus inicializadores.
Para Rails Plugins (o gems) con una aplicación spec/dummy
Cuando su aplicación de rieles está en spec/dummy
e inicia su servidor desde el directorio plugin-root. Es posible que sigas recibiendo el siguiente error:
Cannot load `Rails.application.database_configuration`: Could not load database configuration. No such file - ["config/database.yml"]
Para evitar esto, quite require rails/all
dentro del archivo bin/rails
y requiera los marcos que quiera usar, por ejemplo:
# 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"