Skip to content

Instantly share code, notes, and snippets.

@greathmaster
Forked from awkale/rails_g.rb
Created January 27, 2020 22:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save greathmaster/663b62f275a80b5e3938e8568fdb25a6 to your computer and use it in GitHub Desktop.
Save greathmaster/663b62f275a80b5e3938e8568fdb25a6 to your computer and use it in GitHub Desktop.
rails generators #rails #cheatsheet
# Controller Plural
rails g controller Users index show
# Helper Plural
rails g helper Users
# Mailer Singular
rails g mailer UserMailer
# Migration Plural
rails g migration AddEmailToUsers email:string
#Model Singular
rails g model User name:string
#Observer Singular
rails g observer User
#Resource Plural*
resources :users, :only => [:index, :show]
# Scaffold Singular
rails g scaffold User name:string
# Table Plural
SELECT * FROM users;
#View N/A
app/views/users/index.html.erb
# – comprised of controller (plural) and action (singular)
# Description:
# Stubs out a new model. Pass the model name, either CamelCased or
# under_scored, and an optional list of attribute pairs as arguments.
#
# Attribute pairs are field:type arguments specifying the
# model's attributes. Timestamps are added by default, so you don't have to
# specify them by hand as 'created_at:datetime updated_at:datetime'.
#
# As a special case, specifying 'password:digest' will generate a
# password_digest field of string type, and configure your generated model and
# tests for use with Active Model has_secure_password (assuming the default ORM
# and test framework are being used).
#
# You don't have to think up every attribute up front, but it helps to
# sketch out a few so you can start working with the model immediately.
#
# This generator invokes your configured ORM and test framework, which
# defaults to Active Record and TestUnit.
#
# Finally, if --parent option is given, it's used as superclass of the
# created model. This allows you create Single Table Inheritance models.
#
# If you pass a namespaced model name (e.g. admin/account or Admin::Account)
# then the generator will create a module with a table_name_prefix method
# to prefix the model's table name with the module name (e.g. admin_accounts)
#
# Available field types:
#
# Just after the field name you can specify a type like text or boolean.
# It will generate the column with the associated SQL type. For instance:
#
rails generate model post title:string body:text
#
# will generate a title column with a varchar type and a body column with a text
# type. If no type is specified the string type will be used by default.
# You can use the following types:
#
# integer
# primary_key
# decimal
# float
# boolean
# binary
# string
# text
# date
# time
# datetime
#
# You can also consider `references` as a kind of type. For instance, if you run:
#
rails generate model photo title:string album:references
#
# It will generate an `album_id` column. You should generate these kinds of fields when
# you will use a `belongs_to` association, for instance. `references` also supports
# polymorphism, you can enable polymorphism like this:
#
rails generate model product supplier:references{polymorphic}
#
# For integer, string, text and binary fields, an integer in curly braces will
# be set as the limit:
#
rails generate model user pseudo:string{30}
#
# For decimal, two integers separated by a comma in curly braces will be used
# for precision and scale:
#
rails generate model product 'price:decimal{10,2}'
#
# You can add a `:uniq` or `:index` suffix for unique or standard indexes
# respectively:
#
rails generate model user pseudo:string:uniq
rails generate model user pseudo:string:index
#
# You can combine any single curly brace option with the index options:
#
rails generate model user username:string{30}:uniq
rails generate model product supplier:references{polymorphic}:index
#
# If you require a `password_digest` string column for use with
# has_secure_password, you can specify `password:digest`:
#
rails generate model user password:digest
#
# If you require a `token` string column for use with
# has_secure_token, you can specify `auth_token:token`:
#
rails generate model user auth_token:token
#
# Examples:
rails generate model account
#
# For Active Record and TestUnit it creates:
#
# Model: app/models/account.rb
# Test: test/models/account_test.rb
# Fixtures: test/fixtures/accounts.yml
# Migration: db/migrate/XXX_create_accounts.rb
#
rails generate model post title:string body:text published:boolean
#
# Creates a Post model with a string title, text body, and published flag.
#
rails generate model admin/account
#
# For Active Record and TestUnit it creates:
#
# Module: app/models/admin.rb
# Model: app/models/admin/account.rb
# Test: test/models/admin/account_test.rb
# Fixtures: test/fixtures/admin/accounts.yml
# Migration: db/migrate/XXX_create_admin_accounts.rb
#
#
#
# # CONTROLLERS
# Description:
# Stubs out a new controller and its views. Pass the controller name, either
# CamelCased or under_scored, and a list of views as arguments.
#
# To create a controller within a module, specify the controller name as a
# path like 'parent_module/controller_name'.
#
# This generates a controller class in app/controllers and invokes helper,
# template engine, assets, and test framework generators.
#
# Example:
rails generate controller CreditCards open debit credit close
#
# CreditCards controller with URLs like /credit_cards/debit.
# Controller: app/controllers/credit_cards_controller.rb
# Test: test/controllers/credit_cards_controller_test.rb
# Views: app/views/credit_cards/debit.html.erb [...]
# Helper: app/helpers/credit_cards_helper.rb
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment