← Home

Rails new

Reference & Command Builder

Published: 2023-07-11
Author: Harrison Broadbent
Type: Reference & Command Builder

Rails New

This is the command for generating a new Rails app! (duh... 🤦‍♂️😅)

Jokes aside, rails new does a lot of heavy lifting — scroll down, and you'll see all the different configuration options you can pass to rails new. You can adjust your database, skip extraneous modules, create an API-only app and much, much more.

In most cases, you're probably after the command I've got right here. It creates a new Ruby on Rails app with PostgreSQL for the database, and TailwindCSS for styling.

Run this in your terminal (after setting up ruby, rails and postgresql), and get building!

# Generate a new, standard Ruby on Rails app.
# Use PostgreSQL for the db, and TailwindCSS for styling
# (and the defaults for everything else).
rails new my_app --database=postgresql --css=tailwind

After something different?

Scroll down and play around with the Command Builder, which will help you explore all the options that rails new accepts, and help you create the perfect rails new command.

Command Builder for rails new

rails new 

App name

Generator Options

Runtime Options

# Command Options
❯ rails new

  rails new APP_PATH [options]

            [--skip-namespace], [--no-skip-namespace]              # Skip namespace (affects only isolated engines)
            [--skip-collision-check], [--no-skip-collision-check]  # Skip collision check
  -r,       [--ruby=PATH]                                          # Path to the Ruby binary of your choice
                                                                   # Default: .../bin/ruby
  -m,       [--template=TEMPLATE]                                  # Path to application template (filesystem path or URL)
  -d,       [--database=DATABASE]                                  # Preconfigure for selected database
                                                                   # Options: (mysql/postgresql/sqlite3/oracle/sqlserver
                                                                   # /jdbcmysql/jdbcsqlite3/jdbcpostgresql/jdbc)
                                                                   # Default: sqlite3
  -G,       [--skip-git], [--no-skip-git]                          # Skip .gitignore file
            [--skip-keeps], [--no-skip-keeps]                      # Skip source control .keep files
  -M,       [--skip-action-mailer], [--no-skip-action-mailer]      # Skip Action Mailer files
            [--skip-action-mailbox], [--no-skip-action-mailbox]    # Skip Action Mailbox gem
            [--skip-action-text], [--no-skip-action-text]          # Skip Action Text gem
  -O,       [--skip-active-record], [--no-skip-active-record]      # Skip Active Record files
            [--skip-active-job], [--no-skip-active-job]            # Skip Active Job
            [--skip-active-storage], [--no-skip-active-storage]    # Skip Active Storage files
  -C,       [--skip-action-cable], [--no-skip-action-cable]        # Skip Action Cable files
  -A,       [--skip-asset-pipeline], [--no-skip-asset-pipeline]    # Indicates when to generate skip asset pipeline
  -a,       [--asset-pipeline=ASSET_PIPELINE]                      # Choose your asset pipeline
                                                                   # [options: sprockets (default), propshaft]
                                                                   # Default: sprockets
  -J,       [--skip-javascript], [--no-skip-javascript]            # Skip JavaScript files
            [--skip-hotwire], [--no-skip-hotwire]                  # Skip Hotwire integration
            [--skip-jbuilder], [--no-skip-jbuilder]                # Skip jbuilder gem
  -T,       [--skip-test], [--no-skip-test]                        # Skip test files
            [--skip-system-test], [--no-skip-system-test]          # Skip system test files
            [--skip-bootsnap], [--no-skip-bootsnap]                # Skip bootsnap gem
            [--dev], [--no-dev]                                    # Gemfile points to your Rails checkout
            [--edge], [--no-edge]                                  # Gemfile points to Rails repository
  --master, [--main], [--no-main]                                  # Gemfile points to Rails repository main branch
            [--rc=RC]                                              # Path to file with extra config for rails command
            [--no-rc], [--no-no-rc]                                # Skip loading extra config from .railsrc file
            [--api], [--no-api]                                    # Preconfigure smaller stack for API only apps
            [--minimal], [--no-minimal]                            # Preconfigure a minimal rails app
  -j,       [--javascript=JAVASCRIPT]                              # Choose JavaScript approach
                                                                   # [options: importmap (default), webpack, esbuild, rollup]
                                                                   # Default: importmap
  -c,       [--css=CSS]                                            # Choose CSS processor
                                                                   # [options: tailwind, bootstrap, bulma, postcss, sass]
  -B,       [--skip-bundle], [--no-skip-bundle]                    # Don't run bundle install

Runtime options:
  -f, [--force]                    # Overwrite files that already exist
  -p, [--pretend], [--no-pretend]  # Run but do not make any changes
  -q, [--quiet], [--no-quiet]      # Suppress status output
  -s, [--skip], [--no-skip]        # Skip files that already exist

# Command Description
    The 'rails new' command creates a new Rails application with a default
    directory structure and configuration at the path you specify.

    You can specify extra command-line arguments to be used every time
    'rails new' runs in the .railsrc configuration file in your home directory,
    or in $XDG_CONFIG_HOME/rails/railsrc if XDG_CONFIG_HOME is set.

    Note that the arguments specified in the .railsrc file don't affect the
    defaults values shown above in this help message.

    rails new ~/Code/Ruby/weblog

    This generates a skeletal Rails installation in ~/Code/Ruby/weblog.