2012-04-02 49 views
0
class Project 
    has_many :pages 
end 

class Page 
    belongs_to :project 
end 


@project = Project.first 
@project.pages.list_out 

我應該在哪裏爲頁面提供一個list_out方法?在哪裏放置has_many關係的方法?

+0

未能理解這個問題。什麼是'@ project.pages.list_out'應該完成的事情?另外,「我應該在哪裏放置X?」意味着什麼都沒有...... – Romain 2012-04-02 07:49:04

回答

4
class Project 
    has_many :pages 

    scope :list_out, joins(:pages).where('pages.project_id = ?', self.id) 
end 

class Page 
    belongs_to :project 
end 

@project = Project.first 
@project.list_out 
+0

我更喜歡使用方法,而不是現在的範圍 – fl00r 2012-04-02 09:05:16

1
class Project 
    has_many :pages 

    def list_out 
    pages.map(&:id) 
    end 
end 

class Page 
    belongs_to :project 
end 

@project = Project.first 
@project.list_out