Rails: Active Record Basic

Guide

  • Object Relational Mapping (ORM)
  • Model manipulating data stored in relational database.
  • Migrations, Validations, Callbacks, Associations, Queries

1. Active Record

  • MVC 中的模型层 Model
  • Object Relational Mapping (ORM) 的一活生生的例子。
  • 负责处理核心业务及其相关的逻辑,并将相关数据持久化存储到数据库中。

2. Schema Conventions

  • Active Record 关联数据库某些特殊列的命名规则:
    • Primary key 默认为idForeign key 默认为关联表名称_id
    • Timestamps 默认为表格添加两个时间戳 created_atupdated_at
    • Optimistic Locking 乐观锁通过添加 lock_version来实现。
    • Single Table Inheritance 单表继承通过添加 type 来实现。
    • Polymorphic Association 多态通过添加 关联表名称_id/_type 来实现。
    • Counter Cache 计数器通过添加 关联表名称_count 来实现,注意只读。
  • Tips: 向上述这些列的名称应该在非特定情况中避免使用,以免混淆不清。

3. Overriding the Naming Conventions

  • 如果你不幸遇到遗留系统 (legacy app),并且它的数据库中表的名称并没有遵循 Rails 约定俗成的规则,那么该怎么办呢?不要慌,简单地使用一些方法就可以达到相互认识且完美匹配的效果。例如ActiveRecord::Base.table_name=.. primary_key=.. 方法来指定遗留系统中的表名和主键名。

4. CRUD

  • C: new + save, create
  • R: all, find, find_by, first, where
  • U: find + save, update, update_all, update_attribute, update_column
  • D: find + destroy, find + delete, destroy_all, delete_all

Others:

  • 204 No Content response
  • validates: presence or uniqueness of columns,
  • validates: their format
  • validates: the existence of associated objects
  • div.field_with_errors
  • http_basic_authenticate_with
  • Devise and Authlogic

Resources:

  • ruby-lang-documentation
  • free-programming-book
  • bundler
  • gitignore
  • rails-api
  • rails-guide

你可能感兴趣的:(Rails: Active Record Basic)