- 学习 Ruby on Rails
- Rails 2.1 首页
- Rails 2.1 介绍
- Rails 2.1 安装
- Rails 2.1 框架
- Rails 2.1 目录结构
- Rails 2.1 示例
- Rails 2.1 数据库设置
- Rails 2.1 活动记录
- Rails 2.1 迁移
- Rails 2.1 控制器
- Rails 2.1 视图
- Rails 2.1 布局
- Rails 2.1 构建脚手架
- Rails 2.1 和 AJAX
- Rails 2.1 上传文件
- Rails 2.1 发送电子邮件
- 高级 Ruby on Rails 2.1
- Rails 2.1 RMagick 指南
- Rails 2.1 基本 HTTP 身份验证
- Rails 2.1 错误处理
- Rails 2.1 路由系统
- Rails 2.1 单元测试
- 高级 Ruby on Rails 2.1
- Rails 2.1 技巧与窍门
- 快速参考指南
- 快速参考指南
- Ruby on Rails 2.1 有用资源
- Ruby on Rails 2.1 - 资源
- Ruby on Rails 2.1 - 讨论
Ruby on Rails 2.1 - 模型
模型创建
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', '[email protected]')
模型关系
关联模型有四种方式——has_one、has_many、belongs_to 和 has_and_belongs_to_many。假设有以下四个实体 -
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
考虑以下关系 -
def Category < ActiveRecord::Base has_and_belongs_to_many :products end def Product < ActiveRecord::Base has_and_belongs_to_many :categories end
关联联合模型
考虑以下关系。它描述了我们如何可以在定义关系时使用联接
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
rails-quick-guide.htm
广告