#1 Caching with Instance Variables
尽量少用数据库查询,查询出来的东西能复用的要复用。怎么复用?保存在实例变量中。
1 | class ApplicationController < ActionController::Base |
#2 Dynamic find_by Methods
过时了,现在都直接用 find_by.
#3 Find Through Association
seeds.rb : 可以做些复杂的事情。
1 | happy = Project.create(name: 'Be Happy') |
找到第一个 project 中未完成的任务:
1 | x = Task.where(project_id: 1).where(complete: false) #方法1 |
#4 Move Find into Model
index action 中,排序查找什么的,不要放在 controller 中了,model 的事情交给 model 做,这样 controller 中如果有多个地方想用这个查询,放在模型中就可以复用这个查询代码了。
注意模型中,是类方法,方法名前面加 self。
新版本中用 scopes 取代了这种方法,代码量小的可以用,更简洁。
#5 scope
scope 将常用的查询条件定义成方法。
1 | class Post < ActiveRecord::Base |
#7 Layouts
动态布局
1 | class UsersController |
指定布局
1 | class UsersController |