12 months ago

Rails应用程式常见的操作里,物件可以被新建、更新与删除。Active Record提供了挂载机制,可以挂载事件到物件的生命周期里,用来控制应用程式与资料。

回呼允许你在物件状态,触发特定的逻辑。

以下是资料存进数据库的流程图:

以下是Active Record可用的回呼,依照执行顺序排列:

新建物件:
before_validation
after_validation
before_save
around_save
before_create
around_create
after_create
after_save
after_commit/after_rollback

更新物件:
before_validation
after_validation
before_save
around_save
before_update
around_update
after_update
after_save
after_commit/after_rollback

删除物件:
before_destroy
around_destroy
after_destroy
after_commit/after_rollback

以下方法会触发回呼:
create
create!
decrement!
destroy
destroy!
destroy_all
increment!
save
save!
save(validate: false)
toggle!
touch
update_attribute
update
update!
valid?

略过回呼的方法:
decrement
decrement_counter
delete
delete_all
increment
increment_counter
toggle
update_column
update_columns
update_all
update_counters

教材自动化测试4-7章节——故意修改Model API,setup_动作 是回呼的方法名称,@parking.save(其中“save“这个方法会触发回呼,save之后会自动经历before_validation这个方法,于是setup_动作 这个操作被自动执行了

← Nginx 500错误 购物车设计逻辑 →
 
comments powered by Disqus