2011-04-20 5 views
0

명명 된 범위와 모듈의 차이점을 예제로 설명하십시오.명명 된 범위 대 레일에 루비의 모듈

+2

그들은 실제로 연결되어 있지 않습니다. 아마도 그것들을 비교할 목적을 밝히면 도움이 될 것입니다. – Swanand

+1

그는 이름이 지정된 공간과 모듈의 차이점에 대해 묻고 있다고 생각합니다. – rubyprince

답변

2

사용하면 다음과 같은 레일에 여러 조건으로 포장하려는 경우 명명 된 범위를 사용합니다 :

named_scope :active, :conditions => ['active = ?', true] 
named_scope :legal_age, :conditions => ['age > ?', 21] 

명명 된 범위의 좋은 장점은 당신이 그들을 함께 체인 수입니다. 예 :

user.active.legal_age 

모듈은 비슷한 것을 그룹으로 묶는 데 사용됩니다. 따라서 일반적으로 응용 프로그램에서 공유해야하는 코드가 있으면 lib 디렉토리에 모듈을 정의하고 같은 클래스를 넣습니다.

module MyModule 
    class MyClass 
    .... 
    end 
end 

모듈에는 다른 사용 사례가 있습니다. 이것은 내 경험담의 주요 사례입니다.