2013-05-26 2 views
0

내 Rails 3.2 앱에는 Profilehas_and_belongs_to_many :notes 연관이 있습니다. Note에 '긴급'또는 '표준'유형이 있습니다. (Notehas_and_belongs_to_many :profiles.)has_and_belongs_to_many 관계의 하위 집합을 얻는 방법

내가 같은 방법을 구축하지 않고 profile.urgent_notes 같은 일을 할 수 있도록하고 싶습니다

:

def urgent_notes 
    urgent_notes = Array.new 
    goals.each do |g| 
    if g.type == "urgent" 
     urgent_notes << g 
    end 
    end 

    urgent_notes 
end 

그래서 다른 연결을 추가하여이 작업을 수행 할 수있는 깨끗한 방법이? 아니면 범위와 같은 것이 가장 좋을까요?

답변

1

메모의 범위가 가장 좋습니다. 범위 : 긴급, (유형 : '긴급')

다음은 긴급 메모를 얻기 위해 profile.notes.urgent를 할 수 있습니다. 당신은 새로운 배열 또는 아무것도를 만들 필요가 없습니다

def urgent_notes 
    self.goals.map {|g| g.type == 'urgent'} 
end 

: 당신이 범위를 사용하지 않으려면

+0

충분합니다. 감사! – tvalent2

1

, 여기에 프로필 방법의 재 작성합니다. Rails와 Ruby가 모두 당신을 위해 일합니다.

+0

사실, 좋은 지적. – tvalent2

관련 문제