Đối với một dự án Rails 4/5/6 hiện có, trong config/application.rb
tệp của bạn, bạn có dòng sau:
require 'rails/all' # or `require "rails"' in newer versions
(Tham chiếu dòng đó đang tải tệp này )
Vì vậy, thay vì tải TẤT CẢ, bạn phải tải từng thư viện riêng biệt như sau:
# active_record is what we're not going to use it, so comment it "just in case"
# require "active_record/railtie"
# This is not loaded in rails/all but inside active_record so add it if
# you want your models work as expected
require "active_model/railtie"
# And now the rest
require "action_controller/railtie"
require "action_mailer/railtie"
require "action_view/railtie"
require "active_job/railtie" # Only for Rails >= 4.2
require "action_cable/engine" # Only for Rails >= 5.0
require "sprockets/railtie"
require "rails/test_unit/railtie"
# All these depend on active_record, so they should be excluded also
# require "action_text/engine" # Only for Rails >= 6.0
# require "action_mailbox/engine" # Only for Rails >= 6.0
# require "active_storage/engine" # Only for Rails >= 5.2
Theo dõi các nhận xét để biết những gì cần tải về phiên bản Rails của bạn.
Cũng kiểm tra các tệp sau (trong trường hợp bạn có chúng) và nhận xét những dòng sau:
# package.json
"@rails/activestorage": "^6.0.0",
# app/javascript/packs/application.js
require("@rails/activestorage").start()
# bin/setup
system! 'bin/rails db:prepare'
# config/environments/development.rb
config.active_storage.service = :local # For Rails >= 5.2
config.active_record.migration_error = :page_load
config.active_record.verbose_query_logs = true
# config/environments/test.rb
config.active_storage.service = :test # For Rails >= 5.2
# config/environments/production.rb
config.active_storage.service = :local # For Rails >= 5.2
config.active_record.dump_schema_after_migration = false
# spec/rails_helper.rb
ActiveRecord::Migration.maintain_test_schema!
# test/test_helper.rb
fixtures :all # In case you're using fixtures
# Only for Rails >= 5.0
#config/initializers/new_framework_defaults.rb
Rails.application.config.active_record.belongs_to_required_by_default = true
Đồng thời xóa mọi tham chiếu đến ActiveRecord::Base
trong các tệp mô hình của bạn (hoặc chỉ cần xóa các tệp nếu áp dụng). Ví dụ: app/models/application_record.rb
tệp được tạo tự động.