Quiero deshabilitar 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 tengo 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)
ruby-on-rails
ruby
ruby-on-rails-4
ア レ ッ ク ス
fuente
fuente
rails new ... -O
para deshabilitar activerecord?Respuestas:
Si está creando una nueva aplicación, puede usar
-O
para omitir ActiveRecord:Para aplicaciones existentes:
1. Elimine las gemas del adaptador de base de datos de su Gemfile (mysql2, sqlite3, etc.)
2. Cambie su
config/application.rb
Elimine la
require 'rails/all
línea y requiera marcos (entre los disponibles en surails
versión, la lista varía, no solo copie) que desea usar, por ejemplo:Quitar
config.active_record.raise_in_transactional_callbacks = true
deconfig/application.rb
3. Elimine su
config/database.yml
archivodb/schema.rb
y las migraciones (si las hubiera)4. Eliminar registro de migración
test/test_helper.rb
5. Elimine cualquier configuración de ActiveRecord de sus
config/environments
archivos (esto es lo que está causando su error)Esto es todo lo que necesita hacer para una aplicación Rails vacía. Si se encuentra con problemas causados por su código existente, el seguimiento de la pila debería brindarle suficiente información sobre lo que necesita cambiar. Por ejemplo, podría tener alguna configuración de ActiveRecord en sus inicializadores.
fuente
require 'rails/all'
incluye se puede encontrar aquí .rails new my_app -O
un mes. Ahora quiero recuperar el registro activo. ¿Qué archivos / gemas / configuración necesito agregar ahora?config.active_record.raise_in_transactional_callbacks = true
deconfig/application.rb
.Hola, esto es lo que dan los rieles predeterminados new_app -O
dentro de su config / application.rb
Además, viene sin database.yml y SIN db / migrate / * y schema.rb
fuente
require "action_cable/engine"
Dado que este sigue siendo el primer resultado al buscar en Google para deshabilitar el registro activo para Rails 5, agregaré esto aquí:
Para rieles 5
Haga todos los pasos en la respuesta de @mechanicalfish, pero también elimine la línea
de
fuente
Para aquellos que usan la gema rails-api , pueden encontrar un error similar al usar la
--skip-active-record
bandera al hacerrails-api new my_api
. La solución actual (hasta que se publique una nueva versión corregida de la gema) es editar su gema rails-api para tener esta confirmación . Usebundle open
y reemplace el viejoGemfile
por el nuevo corregido. Vuelva a ejecutar y debería estar todo listo.fuente
Para deshabilitar ActiveRecord en Rails 4.2, puede crear config / initializers / middleware.rb
Ver el middleware de rake de terminal
fuente
Para rieles 5:
Si está generando una nueva aplicación
Use la
--skip-active-record
opción para generar una aplicación sin una base de datos:rails new myApp --skip-active-record
fuente
Para complementos de Rails (o gemas) con una
spec/dummy
aplicaciónCuando su aplicación rails se encuentra instalada
spec/dummy
e inicia su servidor desde el directorio raíz del complemento. Es posible que aún obtenga el siguiente error:Para evitar esto, elimine
require rails/all
dentro del archivobin/rails
y requiera los marcos que desee usar, por ejemplo:fuente
Para Ruby On Rails versión 5.1.x
fuente