--skip-active-record [-O]
--skip-action-cable [-C]
# app/channels/application_cable/channel.rb​module ApplicationCableclass Channel < ActionCable::Channel::Baseendend
# app/channels/application_cable/connection.rb​module ApplicationCableclass Connection < ActionCable::Connection::Baseendend
// app/javascript/channels/consumer.js​import { createConsumer } from '@rails/actioncable'​export default createConsumer()
// app/javascript/channels/index.js​const channels = require.context('.', true, /_channel\.js$/)​channels.keys().forEach(channels)
// app/javascript/packs/application.js​require('channels')
# config/application.rb​require 'action_cable/engine'
# config/cable.yml​development:adapter: async​test:adapter: test​production:adapter: redisurl: <%= ENV.fetch("REDIS_URL") { 'redis://localhost:6379/1' } %>channel_prefix: my_app_production
# config/environments/production.rb​class Application < Rails::Application# Mount Action Cable outside main process or domain.# config.action_cable.mount_path = nil# config.action_cable.url = 'wss://example.com/cable'# config.action_cable.allowed_request_origins = [ 'http://example.com', /http:\/\/example.*/ ]end
# test/channels/application_cable/connection_test.rb​require 'test_helper'​class ApplicationCable::ConnectionTest < ActionCable::Connection::TestCaseend
# Gemfile​gem 'redis', '~> 4.0'
// package.json​{"dependencies": {"@rails/actioncable": "^6.0.0"}}
--skip-action-mailer [-M]
ActionMailer will add a folder: test/mailers
# app/mailers/application_mailer.rb​class ApplicationMailer < ActionMailer::Basedefault from: '[email protected]'layout 'mailer'end
<!-- app/views/layouts/mailer.html.erb -->​<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><style></style></head><body><%= yield %></body></html>
# app/views/layouts/mailer.text.erb​<%= yield %>
# config/application.rb​require 'action_mailer/railtie'
# config/environments/development.rb​class Application < Rails::Applicationconfig.action_mailer.raise_delivery_errors = falseconfig.action_mailer.perform_caching = falseend
# config/environments/production.rb​class Application < Rails::Applicationconfig.action_mailer.perform_caching = false# config.action_mailer.raise_delivery_errors = falseend
# config/environments/test.rb​class Application < Rails::Applicationconfig.action_mailer.perform_caching = falseconfig.action_mailer.delivery_method = :testend
--skip-action-mailbox
ActionMailbox depends on ActiveStorage
# config/application.rb​# require 'active_storage/engine'require 'action_mailbox/engine'
--skip-active-storage
ActiveStorage will add two folders: storage
and tmp/storage
// app/javascript/packs/application.js​require('@rails/activestorage').start()
ActionMailbox and ActionText depend on ActiveStorage
# config/application.rb​require 'active_storage/engine'# require 'action_mailbox/engine'# require 'action_text/engine'
# config/environments/development.rb​class Application < Rails::Applicationconfig.active_storage.service = :localend
# config/environments/production.rb​class Application < Rails::Applicationconfig.active_storage.service = :localend
# config/environments/test.rb​class Application < Rails::Applicationconfig.active_storage.service = :testend
# config/storage.yml​local:service: Diskroot: <%= Rails.root.join('storage') %>​test:service: Diskroot: <%= Rails.root.join('tmp/storage') %>
# .gitignore​/storage/*!/storage/.keep
# Gemfile​# gem 'image_processing', '~> 1.2'
// package.json​{"dependencies": {"@rails/activestorage": "^6.0.0"}}
--skip-action-text
ActionText depends on ActiveStorage
# config/application.rb​# require 'active_storage/engine'require 'action_text/engine'