Saya ingin menonaktifkan ActiveRecord di Rails 4. Saya melakukan hal berikut di 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
Oleh Saya memiliki kesalahan
/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
ア レ ッ ク ス
sumber
sumber
rails new ... -O
untuk menonaktifkan activerecord?Jawaban:
Jika Anda membuat aplikasi baru, Anda dapat menggunakan
-O
untuk melewati ActiveRecord:Untuk aplikasi yang sudah ada:
1. Hapus permata adaptor database dari Gemfile Anda (mysql2, sqlite3, dll.)
2. Ubah file
config/application.rb
Hapus
require 'rails/all
baris dan memerlukan kerangka kerja (di antara yang tersedia dirails
versi Anda , daftarnya bervariasi, jangan hanya menyalin) yang ingin Anda gunakan, misalnya:Hapus
config.active_record.raise_in_transactional_callbacks = true
dariconfig/application.rb
3. Hapus
config/database.yml
file Anda ,db/schema.rb
dan migrasi (jika ada)4. Hapus check in migrasi
test/test_helper.rb
5. Hapus semua konfigurasi ActiveRecord dari
config/environments
file Anda (inilah yang menyebabkan kesalahan Anda)Ini semua yang perlu Anda lakukan untuk aplikasi Rails kosong. Jika Anda mengalami masalah yang disebabkan oleh kode yang ada, pelacakan tumpukan akan memberi Anda informasi yang cukup tentang apa yang perlu Anda ubah. Anda mungkin misalnya memiliki beberapa konfigurasi ActiveRecord di penginisialisasi Anda.
sumber
require 'rails/all'
termasuk dapat ditemukan di sini .rails new my_app -O
sebulan yang lalu. Sekarang saya ingin rekaman aktif kembali. File / permata / konfigurasi apa yang perlu saya tambahkan sekarang?config.active_record.raise_in_transactional_callbacks = true
dariconfig/application.rb
.Hai, inilah yang diberikan rel default new_app -O
di dalam config / application.rb Anda
Selain itu, ia datang tanpa database.yml dan NO db / migrate / * dan schema.rb
sumber
require "action_cable/engine"
Karena ini masih menjadi hit pertama saat mencari Google untuk menonaktifkan rekaman aktif untuk Rails 5, saya akan menambahkan ini di sini:
Untuk Rails 5
Lakukan semua langkah dalam jawaban @mechanicalfish, tetapi juga hapus garisnya
dari
sumber
Bagi mereka yang menggunakan gem rails-api, Anda mungkin mengalami kesalahan serupa saat menggunakan
--skip-active-record
flag saat melakukannyarails-api new my_api
. Perbaikan saat ini (sampai versi baru yang dikoreksi dari permata tersebut dirilis) adalah dengan mengedit permata rails-api Anda agar komit ini . Gunakanbundle open
dan ganti yang lamaGemfile
dengan yang baru diperbaiki. Jalankan kembali dan Anda harus siap.sumber
Untuk menonaktifkan ActiveRecord di Rails 4.2 Anda dapat membuat config / initializers / middleware.rb
Lihat middleware rake terminal
sumber
Untuk Rails 5:
Jika Anda membuat aplikasi baru
Gunakan
--skip-active-record
opsi untuk menghasilkan aplikasi tanpa database:rails new myApp --skip-active-record
sumber
Untuk Rails Plugins (atau permata) dengan
spec/dummy
aplikasiSaat aplikasi rails Anda aktif
spec/dummy
dan Anda memulai server dari direktori plugin-root. Anda mungkin masih mendapatkan kesalahan berikut:Untuk menghindarinya, hapus
require rails/all
di dalam filebin/rails
dan membutuhkan kerangka kerja yang ingin Anda gunakan, misalnya:sumber
Untuk Ruby On Rails versi 5.1.x
sumber