Naming Conventions for Ruby on Rails

Part of the Ruby on Rails For Dummies Cheat Sheet

You’re using Ruby on Rails to create a Web application or Web database app, which is very smart of you. Depending on what you’re working with — an application, a one-to-many relationship, or a many-to-many relationship — you use different variations on Rails naming protocols, which are explained in the following sections.

Ruby naming for new apps

When you create a new application — for example, an album project with a photos database table — use the following steps:

  1. Create a Rails project named album.

  2. Create databases named album_development, album_test, album_production.

  3. Generate a Photo model. (In the RadRails Generators view, select model in the drop-down list, and type Photo in the text field to the right of the drop-down list.)

    • Rails creates a class named Photo in a file named photo.rb.

    • Rails creates a migration file named 001_create_photos.rb.

  4. Create a database table named photos.

  5. Generate a Photo scaffold. (In the RadRails Generators view, select scaffold in the drop-down list and type Photo in the text field to the right of the drop-down list.)

    • Rails creates a class named PhotosController in a file named photos_controller.rb.

  6. Visit http://localhost:300x/photos/.

Ruby naming in a one-to-many relationship

When you work with a foreign key in a one-to-many relationship (for example, one photo with many comments), follow these tips:

  • The comments table has a photo_id column.

  • The Comment model contains the statement belongs_to :photo.

  • The Photo model contains the statement has_many :comments.

Ruby naming in a many-to-many relationship

When you work with a many-to-many relationship (for example, photos and tags), keep these protocols in mind:

  • The Photo model contains the statement has_and_belongs_to_many :tags.

  • The Tag model contains the statement has_and_belongs_to_many :photos.

  • The photos_tags table (so named because photos comes before tags alphabetically) has no id column.

  • Add a Comment
  • Print
  • Share
blog comments powered by Disqus

SERIES
Ruby on Rails For Dummies Cheat Sheet

Advertisement

Inside Dummies.com