@tasks = Task.find_all_by_complete(false, :order => 'created_at DESC')改成:
@tasks = Task.find_incomplete
然后在model里定义incomplete方法,这是一个class方法,前面要加self:def self.find_incomplete注意方法定义体里的find…方法前不用加self,因为当前的作用域就是model类本身。
find_all_by_complete(false, :order => 'created_at DESC')
end
到这里都看似很平常,下面神奇的就来了。在episode 003里介绍的关联查询也可以用这里定义的find_incomplete方法:
@project = Project.find(params[:id])可以改成:
@tasks = @project.tasks.find_all_by_complete(false, :order => 'created_at DESC')
@tasks = @project.tasks.find_incomplete也就是说,凡是Task的class方法,都可以在@project.tasks这样的关联查询中使用。
没有评论:
发表评论