문제

있음 라코 디스

좋아요 라코 디스

하지만 DRY 방식을 선호합니다.사용하여도 같은 효과를 얻을 수 있습니다 라코 디스

하지만 특별히 사랑 스럽지는 않습니다.

도움이 되었습니까?

해결책

글쎄요 저는 아직 rails를 처음 사용하고 정확히 무엇을 하려는지 잘 모르겠습니다.하지만 코드를 재사용하려는 경우 일반 클래스 메서드를 사용하지 않는 이유는 무엇입니까?


        def self.ab(a, b)
            a(a).b(b)
        end
    

a와 b 대신 * args를 사용하여 더 유연하게 만들 수 있으며, 다음 중 하나를 선택적으로 만들 수 있습니다.named_scope에 갇혀있는 경우 확장하여 동일한 작업을 수행 할 수 없습니까?

당신이하려는 일에 내가 완전히 틀렸는 지 알려주세요.

다른 팁

적어도 3.2 이후에는 현명한 해결책이 있습니다. 라코 디스

클래스 메서드로 만들면 다음과 같이 연결 프록시에 연결할 수 없습니다. 라코 디스

대안은 이 패치 named_scope에 : through 옵션을 활성화하려면 : 라코 디스

named_scope를 재사용하여 다른 named_scope 정의

편의를 위해 여기에 복사합니다.

proxy_options를 사용하여 하나의 named_scope를 다른 범위로 재활용 할 수 있습니다. 라코 디스

이렇게하면 다른 named_scope와 연결할 수 있습니다.

내 코드에서 이것을 사용하고 완벽하게 작동합니다.

도움이 되었기를 바랍니다.

@ PJ : 알다시피, 저는 그것을 고려했지만 나중에 다음과 같이 세 번째 명명 된 범위에 연결할 수 없다고 생각했기 때문에 무시했습니다. 라코 디스

그러나 ab(x, y)b(y)가 반환하는 모든 것을 반환하므로 체인이 작동 할 것이라고 생각합니다.명백한 것을 다시 생각하게 만드는 방법!

체크 아웃 :

http://github.com/binarylogic/searchlogic

인상적입니다!

구체적으로 : 라코 디스

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top