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
默认为id
,Foreign key
默认为关联表名称_id
。
-
Timestamps
默认为表格添加两个时间戳 created_at
和updated_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:
本文标题:Rails: Active Record Basic
本文链接:https://www.haomeiwen.com/subject/hynkjttx.html
网友评论