回答:
environment.rb
ファイルの次の行のコメントを外します。
config.frameworks -= [ :active_record, :active_resource, :action_mailer]
以下のためのRails 3とRailsの4:
使用
-O
(資本「O」)または--skip-activerecord
データベースなしでアプリケーションを生成するためのオプション。
rails new myApp -O
または
rails new myApp --skip-activerecord
以下のためのRailsの5:
--skip-active-record
オプションを使用して、データベースなしでアプリケーションを生成します
以前のRailsバージョンとは異なり、余分なハイフン「-」に注意してください。
rails new myApp --skip-active-record
-O
機能します。このオプション--skip-activerecord
は機能しません。
--skip-active-record
(アクティブなnadレコード間のダッシュに注意してください)。他の方法は私にはうまくいきません。
既存のRails 4/5/6プロジェクトの場合、config/application.rb
ファイルには次の行があります。
require 'rails/all' # or `require "rails"' in newer versions
(参考として、この行はこのファイルをロードしています)
したがって、ALLをロードする代わりに、次のように各ライブラリを個別にロードする必要があります。
# 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
Railsのバージョンに関して何をロードするかを知るには、コメントに目を離さないでください。
また、次のファイル(ある場合)を確認し、次の行をコメント化します。
# 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
またActiveRecord::Base
、モデルファイル内のすべての参照を削除します(または、該当する場合は単にファイルを削除します)。たとえば、自動生成されたapp/models/application_record.rb
ファイル。
active_job/railtie
とaction_cable/engine
database.yml
ので、DBは無視されますか?
rake assets:precompile
原因で失敗する問題をNoMethodError: undefined method
引き起こします '`:/
activerecord-nulldb-adapter
からgithub.com/nulldb/nulldbはあなたが一時的または低侵襲性の変化のためのアダプターを交換することができます。
-O
とaction_mailer
は関係なく、とは関係がないため、回答でコメントしたすべてについて確信がないconfig/detabase.yml
ため、コメントする必要はありません。また、コメントされた後にコメントする追加の行がいくつかありますactive_storage
。
Rails 4では、新しいプロジェクトを開始するときに-Oまたは--skip-active-recordを使用できます。
rails new my_project -O
rails new my_project --skip-active-record
すでにプロジェクトを作成している場合は、コメントする必要があります
require "active_record/railtie"
config / application.rbおよび
config.active_record.migration_error = :page_load
config / environments / development.rbから
データベースが必要なければ、おそらくRailsの大部分は必要ありません。より小さなカスタマイズ可能なフレームワークを使用したい場合があります。
Sinatraは、基本的な静的ページを提供するのに最適な小さなフレームワークです。
Rails 6 rc1およびactiverecord-nulldb-adapter
gemをサポートするには、サルのパッチが必要です
で設定/初期化子/ null_db_adapter_monkey_patches.rb
module ActiveRecord
module ConnectionAdapters
class NullDBAdapter < ActiveRecord::ConnectionAdapters::AbstractAdapter
def new_table_definition(table_name = nil, is_temporary = nil)
TableDefinition.new(table_name, is_temporary)
end
end
end
end