今天写项目,然后参考ruby-china的一部分代码的时候,看到一个include的用法,不知道是怎么回事,因为它是用mongodb的,所以也一时找不到ActiveRecord中的用法。
不过刚刚在看railscasts的时候,突然就看到了这种用法:
比如说Task和Project是多对一的关系
在index的页面需要用到Task和它belongs_to的那个Project,这样的话,看log里,会发现,查找了Project了很多次。
那么就能用@tasks = Task.find(:all, :include => :project)来查到和project关联的task,这样的话可以把相关联的对象也先读取出来。
那么有什么结果呢?
在console的log里就看得很清楚了,载入页面之后,两次查询就够了。
我自己去写的时候,find方法不起作用,不知道是因为这是以前的写法还是怎样。
就看到实战圣经上有说这个的,原来是includes方法,比如:
1
| |
这样就能查询到最近的event,并把对应的user包含进去,再进行分页了。顿时感觉世界好美好的有木有!! 哈哈~
