`
cab0605
  • 浏览: 108718 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

Active Record 初解

阅读更多
1.关联
n:1: belongs_to: XXXX
1:n: has_many:XXX
1:1: has_one :XXX
m:n: has_and_belongs_to_many:XXX
连接join: :through => :XXX (for ex:has_many :photos :through => :slides) rails 1.1才有此功能
特殊关联:
acts_as_list :列表
acts_as_tree :父子关系
acts_as_nested_set

class Slide < ActiveRecord::Base
  belongs_to :slideshow
  acts_as_list :scope => "slideshow_id"
  belongs_to :photo
end
表示sildes表中的slideshow_id为belongs_to :slideshow关系中的外键(FK)
class Category < ActiveRecord::Base
  acts_as_tree
end



2.级联
has_many :XXX, dependent => true


3.设定主键:rails不支持复合主键,rails默认数据表中的主键名称为id,如果您的主键不为id,如下设置:
class Photo < ActiveRecord::Base
  set_primary_key "created_at"
end
4.domain中的继承关系
class Photographer < Person
end

class Person < ActiveRecord::Base
end
5.domain中的组件关系
CREATE TABLE people (
   id INT AUTO_INCREMENT NOT NULL,
   type VARCHAR(20),
   name VARCHAR(20),
   email VARCHAR(30),
   street_address VARCHAR(30),
   city VARCHAR(30),
   state VARCHAR(20),
   zip INTEGER(5),
   camera VARCHAR(20),
   PRIMARY KEY (id)
);

class Person < ActiveRecord::Base
  composed_of :address, :class_name => "Address",
              :mapping => [[:street_address, :street_address],
                           [:city, :city],
                           [:state, :State],
                           [:zip, :zip]]
end
class Address
  def initialize(street_address, city, state, zip)
    @street_address = street_address
    @city = city
    @state = state
    @zip = zip
  end

  attr_reader :street_address, :city, :state, :zip
end
6.查找记录
find_by_<column_name> find_by_id
find_by_<column_name>_and_<column_name> find_by_name_and_email(name, email)
7.验证字段有效性
class Photo < ActiveRecord::Base
  validates_presence_of :filename 验证是否为空
end

validates_format_of :email,
                    :with => /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i
validates_length_of :name, :within => 6..100                   
8.事务处理
def transfer(from, to, amount)
  Account.transaction do
    from.debit(amount)
    to.credit(amount)
  end
end

0
0
分享到:
评论

相关推荐

    Pro Active Record. Databases with Ruby and Rails

    《Pro Active Record. Databases with Ruby and Rails》是一本深入探讨Ruby on Rails框架中Active Record库的专著。这本书详细阐述了如何利用Ruby语言和Rails框架来高效地处理数据库操作,帮助开发者理解并掌握...

    active_record.cr, Active Record Pattern的实现.zip

    active_record.cr, Active Record Pattern的实现 active_record Active Record Pattern的实现。不要与 ruby的activerecord混淆: 目标是将 true 转换为面向对象技术,并将 true 用于 Active Record Patter

    Active Record模式使用问题详解.docx

    Active Record 是一种设计模式,常用于简化对象与数据库之间的交互,尤其在ORM(对象关系映射)框架中。它将数据库中的每一行记录映射为一个对象,通过对象的方法直接执行CRUD(创建、读取、更新、删除)操作。在...

    Active Audio Record ActiveX控件

    Active Audio Record ActiveX控件 可以直接录制声音为MP3、WAV、wma 、ogg、au、aiff 和vox格式的音频文件。您可以通过设置内码参量完全控制音像文件的质量。 &lt;br&gt; Active Audio Record ActiveX控件 支持...

    种使用MVC架构开发的Trello,使用Active Record进行数据库查询.zip

    在本文中,我们将深入探讨如何使用MVC(Model-View-Controller)架构开发一个类似Trello的应用,并结合Active Record进行数据库查询。MVC是一种广泛应用于Web应用开发的设计模式,它将业务逻辑、数据处理和用户界面...

    state_machines-activerecord, StateMachines Active Record 集成.zip

    state_machines-activerecord, StateMachines Active Record 集成 StateMachines Active Record 集成Active Record 4.1 集成添加对数据库事务的支持,自动保存记录,命名范围,验证错误。依赖项Active Record 4.1 ...

    active_record_upsert, Rails 5/Active Record 5的更新更新.zip

    active_record_upsert, Rails 5/Active Record 5的更新更新 ActiveRecordUpsertpostgre 9.5 和 Rails 5/ActiveRecord 5的真正更新。 在冲突时使用进行更新。的主要点是否在单个记录上使用 ON CONFLICT DO U

    Rails 3中的Active Record的查询变化.doc

    在Rails 3中,Active Record查询接口发生了显著的变化,这些变化主要是为了提高代码的可读性和性能,引入了懒加载(Lazy Loading)的概念。本文将详细介绍这些查询方式的转变及其背后的动机。 首先,我们注意到旧版...

    Active Record所引用的程序集

    Active Record是Ruby on Rails框架中的一个核心组件,它实现了对象关系映射(ORM)系统,使得开发者能够以面向对象的方式处理数据库操作。在.NET环境中,虽然没有原生的Active Record库,但存在类似的概念和库,如...

    Active HDL 8.1 破解

    Active HDL8.1的破解crack文件,安装好程序后,将crack下的bin、dat文件夹覆盖替换原安装目录下对应文件即可!源程序可到其官网下载

    Aldec_Active_HDL破解

    aldec active hdl仿真软件破解

    Pro.Active.Record.Databases.with.Ruby.and.Rails

    ### Pro Active Record Databases with Ruby and Rails #### 概述 《Pro Active Record Databases with Ruby and Rails》一书由Kevin Marshall、Chad Pytel和Jon Yurek共同撰写,旨在帮助开发者掌握如何使用Ruby及...

    yii2-save-relations-behavior, 验证并保存相关的Active Record 模型.zip

    yii2-save-relations-behavior, 验证并保存相关的Active Record 模型 Yii2 Active Record 保存关系行为自动验证和保存相关的Active Record 模型。 特性支持 hasMany() 和 hasOne() 关系现有的相关模型一起工作支持...

    Ruby on Rails Guides_ A Guide to Active Record Associations.pdf

    Ruby on Rails Guides_ A Guide to Active Record Associations.pdf

    Castle Active Record (.net 2.0) 开发资料集合

    内含net2.0开发包(dll+Castle.ActiveRecord.Generator.exe免安装),教程,... 如果觉得好的话,请您给顶一下。 castle active record(AR)在.Net2.0下支持泛型,这极大的方便了我们创建强类型集合以及对对象的强类型操作.

    composite_primary_keys, Active Record的复合主键支持.zip

    composite_primary_keys, Active Record的复合主键支持 用于ActiveRecords的复合主键摘要ActiveRecords infamously不支持复合主键。 这个 gem,composite_primary_keys或者CPK简短地扩展了ActiveRecord以支持组合键...

Global site tag (gtag.js) - Google Analytics