Table of Contents

Naming Conventions

Classes

Classes use MixedCase and have no underscores, each word starts with a uppercase letter, e.g. InvoiceItem

Database Table

Table names have all lowercase letters and underscores between words, also all table names need to be plural, e.g. invoice_items, orders

Model

The model is named using the class naming convention of unbroken MixedCase and is always the singular of the table name, e.g. table name might be orders, the model name would be Order. Akelos will then look for the class definition in a file called order.php in the /app/models directory. If the model class name has multiple capitalised words, the table name is assumed to have underscores between these words.

Primary Key

The primary key of a table is assumed to be named id.

Foreign Key

The foreign key is named with the singular version of the target table name with _id appended to it, e.g. order_id in the items table where we have items linked to the orders table.

Many to Many Link Tables

Tables used to join two tables in a many to many relationship is named using the table names they link, with the table names in alphabetical order, for example items_orders.

Automated Record Timestamps

You can get ActiveRecord to automatically update the create and update times of records in a database table. To do this create two specially named columns created_at and updated_at to your table. If you only want to store the date rather than a date and time, use created_on and updated_on.

Controller

Controller class names are pluralized when applicable, such that OrdersController would be the controller class for the orders table. Akelos will then look for the class definition in a file called orders_controller.php in the /app/controllers directory.

Action Controller and Helper Methods

Action Controller and Helper methods are named where all letters are lowercase and words are separated by underscores, e.g. list_all, textilize

Files, Directories and other pluralization

Files are named using lowercase and underscores. Assuming we have an Orders controller then the following other conventions will apply: