Sekarang Rails 3 beta sudah keluar, saya pikir saya akan melihat menulis ulang aplikasi yang baru saja saya mulai bekerja di Rails 3 beta, keduanya untuk merasakannya dan sedikit memulai. Aplikasi ini menggunakan MongoDB dan MongoMapper untuk semua modelnya dan oleh karena itu tidak memerlukan ActiveRecord. Di versi sebelumnya, saya membongkar activerecord dengan cara berikut:
config.frameworks -= [ :active_record ] # inside environment.rb
Di versi terbaru ini tidak berfungsi - ini hanya melontarkan kesalahan:
/Library/Ruby/Gems/1.8/gems/railties-3.0.0.beta/lib/rails/configuration.rb:126:in
`frameworks': config.frameworks in no longer supported. See the generated
config/boot.rb for steps on how to limit the frameworks that will be loaded
(RuntimeError)
from *snip*
Tentu saja, saya telah melihat boot.rb seperti yang disarankan, tetapi sejauh yang saya lihat, tidak ada petunjuk di sini tentang bagaimana saya akan membongkar AR. Alasan saya perlu melakukan ini adalah karena tidak hanya konyol memuat sesuatu yang tidak saya inginkan, tetapi juga mengeluh tentang ketidakmampuannya untuk membuat koneksi DB bahkan ketika saya mencoba menjalankan generator untuk pengontrol. Ini karena saya telah menghapus database.yml
dan menggantinya dengan detail koneksi untuk MongoDB agar dapat menggunakan inti ini untuk menggunakan database.yml untuk detail koneksi MongoDB. Tidak yakin mengapa harus dapat memulai koneksi DB sama sekali hanya untuk menghasilkan pengontrol ....
Adakah yang mengetahui cara Rails 3 yang benar untuk melakukan ini?
sumber
require "sprockets/railtie"
Andaapplication.rb
.--skip-active-record
. Perhatikan tanda hubung ekstra.Rel 4
Saya sedang mencari cara menonaktifkannya di rel 4 dan hanya menemukan jawaban ini yang tidak lagi berfungsi di rel 4. Jadi, inilah cara Anda melakukannya di rel 4 (diuji di RC1).
Dalam proyek baru
Dalam proyek yang sudah ada
gem 'sqlite3'
ataugem 'pg'
.Di config / application.rb, ganti
require 'rails/all'
denganDi config / environment / development.rb, hapus atau beri komentar
config.active_record.migration_error = :page_load
Kemungkinan Anda harus menghapus pembantu active_record dari spec_helper (melalui VenoM di komentar)
Kemungkinan Anda harus menghapus middleware ConnectionManagement (tampaknya terjadi pada unicorn):
config.app_middleware.delete "ActiveRecord::ConnectionAdapters::ConnectionManagement"
(melalui https://stackoverflow.com/a/18087332/764342 )Saya harap ini membantu orang lain yang mencari cara menonaktifkan ActiveRecord di Rails 4.
sumber
Untuk aplikasi rails baru, Anda dapat membuatnya mengecualikan rekaman aktif dengan menentukan parameter --skip-active-record. Misalnya:
sumber
Jika Anda membuat proyek baru menggunakan Rails 3.2, Anda juga perlu berkomentar:
dan
di file development.rb Anda .
sumber
Semua hal di atas benar. Satu hal lagi yang harus saya lakukan di rel 3.1 adalah memberi komentar
masuk
config/application.rb
.sumber
Jika Anda menjalankan rspec, Anda juga perlu menghapus (di spec_helper):
dan hapus
sumber
Juga komentar keluar
(dicatat di rel 3.2.13)
sumber