Find Through Association

Project model  has_many tasks:
class Project < ActiveRecord::Base  
    has_many :tasks  
end

a Task model  belongs_to a project
class Task < ActiveRecord::Base  
    belongs_to :project  
end  

用project控制器的show方法,显示所有未完成tasks:
class ProjectsController < ApplicationController  
    def show  
        @project = Project.find(params[:id])  
        @tasks = Task.find(:all, :conditions => ['project_id = ? AND complete = ?', @project.id, false])  
    end  
end  

通过model之间的关联去实现是一种更好的方式:
class ProjectsController < ApplicationController  
    def show  
        @project = Project.find(params[:id])  
        @tasks = @project.tasks.find(:all, :conditions => [complete = ?', false])   
    end  
end  



额,显然,前面介绍过优雅的find_by方法:

class ProjectsController < ApplicationController  
    def show  
        @project = Project.find(params[:id])  
       @tasks = @project.tasks.find_all_by_complete(false)    
    end  
end 



你可能感兴趣的:(java,ActiveRecord)