Skip to content

Instantly share code, notes, and snippets.

@oojikoo-gist
Last active August 29, 2015 14:19
Show Gist options
  • Save oojikoo-gist/071dd90a1e56f6bc0fd0 to your computer and use it in GitHub Desktop.
Save oojikoo-gist/071dd90a1e56f6bc0fd0 to your computer and use it in GitHub Desktop.
rails: generator dictionary

rails generator dictionary

basic

$ rails g model user email age:integer
  • data_type
    • integer
    • primary_key
    • decimal
    • float
    • boolean
    • binary
    • string
    • text
    • date
    • time
    • datetime
    • timestamp

option params

You are able to pass –option parameter to generator. It will inherit generating class from passed name to achieve STI (sing table inheritance):

$ rails g model admin --parent user

This example generates model:

class Admin < User
end

module

$ $ rails g model admin/user

you will get generated model in scope app/models/admin/user.rb, defined scope app/models/admin.rb which is requred to define module. Let’s see to the content of generated module:

module Admin
  def self.table_name_prefix
    'admin_'
  end
end

advanced usage

$ rails g model user email:index location_id:integer:index
$ rails generate model user pseudo:string{30}
$ rails generate model product 'price:decimal{10,2}'
$ rails generate model user username:string{30}:uniq
$ rails generate model photo album:references

Pay attention that you have to wrap parameter price:decimal{10,2} to quotes. It’s vital and you may have incorrect behavior of generator if you don’t do it. Full explanation of this case is here.

polymorphic

$ rails generate model product supplier:references{polymorphic}
$ rails generate model product supplier:references{polymorphic}:index
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment