How to configure Ruby on Rails with no database?

前端 未结 6 1892
情歌与酒
情歌与酒 2020-11-30 19:27

It would be convenient to use Ruby on Rails for a small website project that has no current need for a database. I know I could create an empty database in MySQL and go fro

6条回答
  •  一整个雨季
    2020-11-30 19:50

    For an existing Rails 4/5/6 project, in your config/application.rb file you have the following line:

    require 'rails/all' # or `require "rails"' in newer versions
    

    (As reference that line is loading this file)
    So instead of load ALL, you must to load each library separately as follows:

    # 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
    

    Keep an eye to the comments to know what to load regarding your Rails version.
    Also check the following files (in case you have them) and comment the following lines:

    # 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
    

    Also remove any reference to ActiveRecord::Base in your model files (or simply delete the files if apply). For example, the autogenerated app/models/application_record.rb file.

提交回复
热议问题