
- Ruby on Rails Tutorial
- Ruby on Rails - Home
- Ruby on Rails - Introduction
- Ruby on Rails - Installation
- Ruby on Rails - Framework
- Ruby on Rails - Directory Structure
- Ruby on Rails - Examples
- Ruby on Rails - Database Setup
- Ruby on Rails - Active Records
- Ruby on Rails - Migrations
- Ruby on Rails - Controllers
- Ruby on Rails - Routes
- Ruby on Rails - Views
- Ruby on Rails - Layouts
- Ruby on Rails - Scaffolding
- Ruby on Rails - AJAX
- Ruby on Rails - File Uploading
- Ruby on Rails - Send Emails
- Ruby on Rails Resources
- Ruby on Rails - References Guide
- Ruby on Rails - Quick Guide
- Ruby on Rails - Resources
- Ruby on Rails - Discussion
- Ruby Tutorial
- Ruby Tutorial
Ruby on Rails - Models
Model Creation
Model.new # creates a new empty model Model.create( :field ⇒ 'value', :other_field ⇒ 42 ) # creates an object with the passed parameters and saves it Model.find_or_create_by_field( value ) # searches for a record where "field = value", creates # a new record if not found User.find_or_create_by_name_and_email( 'ramjoe', 'ram@example.com')
Model Relations
There are four ways of associating models. has_one, has_many, belongs_to and has_and_belongs_to_many. Assuming the following four entities −

def Order < ActiveRecord::Base has_many :line_items belongs_to :customer end def LineItem < ActiveRecord::Base belongs_to :order end def Customer < ActiveRecord::Base has_many :orders has_one :address end def Address < ActiveRecord::Base belongs_to :customer end
Consider following relationship −

def Category < ActiveRecord::Base has_and_belongs_to_many :products end def Product < ActiveRecord::Base has_and_belongs_to_many :categories end
Association Join Models
Consider the following relationship now. This depicts how we can use joins while defining relationship.

class Author < ActiveRecord::Base has_many :authorships has_many :books, :through ⇒ :authorships end class Authorship < ActiveRecord::Base belongs_to :author belongs_to :book end class Book < ActiveRecord::Base has_one :authorship end @author = Author.find :first # selects all books that the author's authorships belong to. @author.authorships.collect { |a| a.book } selects all books by using the Authorship join model @author.books
Check Associations for more details.
rails-references-guide.htm
Advertisements