Copyright © tutorialspoint.com
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') |
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 relaship:

def Category < ActiveRecord::Base has_and_belongs_to_many :products end def Product < ActiveRecord::Base has_and_belongs_to_many :categories end |
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 the following link for more detail on Associations.
Copyright © tutorialspoint.com