- Name variables and classes using short phrases.
- Variable names have all letters lowercase separated by underscores (snakecase):
this_is_an_example - Classes and modules capitalize each word in the phrase (mixed case):
ThisIsAnExample
- Database table names and variable names use snake case.
- Table names are always plural:
orders,thid_parties - Files are named using snake case:
application_controller.rb - Rails converts names automatically:
- Model
- Class:
LineItem - Database Table:
line_items - Model file:
app/models/line_item.rb
- Class:
- Controller:
- Class:
StoreController - Class file:
app/controllers/store_controller.rb - URL:
http://../store/list/ - Method:
list
- Class:
- View:
- View templates directory:
app/views/store/ - View file:
app/views/store/list.html.erbor.builder - Layout template:
app/views/layouts/store.html.erb - Helper module:
StoreHelper - Helper file:
app/helpers/store_helper.rb
- View templates directory:
- Controller Modules:
- Similar controller can be grouped into a namespace
- URL:
http://../admin/book - Controller file:
book_controller.rb - Controller directory:
app/controllers/admin/ - Class definition:
class Admin::BookController < ActionController::Base - Views:
app/views/admin/book/edit.html.erb - Generator:
rails generate controller Admin::Book action1 action2..
- Model
| SQL Type | Ruby Class |
|---|---|
| int, integer | Fixnum |
| float, double | Float |
| decimal, numeric | BigDecimal |
| char, varchar, string | String |
| interval, date | Date |
| datetime, time | Time |
| clob, blob, text | String |
| boolean | convenience method with ? |