여러 클래스에 대한 Rails 제네릭 메서드

무하마드 파이살 이크발

User, Admin, Device 등에 속하는 Order라는 모델이 있습니다. 사용자와 같은 특정 개체에 대한 총 주문 수를보고 싶습니다.

그래서 user.rb 모델을 작성해야합니다.

def total_sales
  // there are some dates & status conditions too
  orders.sum(:total)
end

하지만 관리자, 장치 등의 경우 admin.rb 및 device.rb에 똑같은 코드를 작성해야합니다.

한 곳에서 코드를 작성하고 모든 곳에 작성하고 싶습니다. 다음과 같은 일반 클래스를 작성하려고 생각했습니다.

class Calculate
  def initialize(object)
    @object = object
  end
  
  def total_sales
   // there are some dates & status conditions too
   @object.orders.sum(:total)
  end
end

그리고 그것을 부르는 것보다

//sales of user
object = Calculate.new(user)
object.total_sales

//sales of admin
object = Calculate.new(admin)
object.total_sales

그러나 이것이 표준 방법인지 확실하지 않습니다.이를 달성하는 더 좋은 방법은 무엇입니까?

살릴

이를 위해 mixin사용 하고 아래와 같은 모듈을 만듭니다.

module CommonMethods
  def total_sales
    // there are some dates & status conditions too
    self.orders.sum(:total)
  end
end

User, Admin, Device 등과 같은 각 클래스에 모듈을 포함합니다.

class User
  include CommonMethods
end

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

제네릭 클래스의 정적 Create () 메서드에 대한 압축 구문?

분류에서Dev

제네릭 클래스에 대한 필드 제약 조건-C #

분류에서Dev

클래스의 여러 메서드에 대한 조건

분류에서Dev

클래스 메서드에 대한 여러 포인터

분류에서Dev

Swift 제네릭 팩토리 메소드에서 컴파일러가 Generic 클래스 'X'에 'Object'가 'Y'를 준수해야한다고 경고하는 이유

분류에서Dev

main.cpp의 제네릭 클래스에 대한 operator> 오버로드 방법

분류에서Dev

제네릭 하위 클래스 메서드가 C #에서 허용 할 수있는 제한 형식

분류에서Dev

제네릭 Dart 메서드에서 제네릭 유형 T에 대한 제약을 적용하는 방법

분류에서Dev

여러 자식에 대한 부모 클래스의 메서드 정의

분류에서Dev

컴파일러에서 찾을 수없는 제네릭 형식 클래스의 C # 확장 메서드

분류에서Dev

비 제네릭 정적 팩토리 메서드를 구현하여 문자열 입력에서 다양한 제네릭 클래스를 만듭니다 ( "동적"유형을 사용하지 않음).

분류에서Dev

C ++ : 제네릭 클래스의 비 제네릭 메서드?

분류에서Dev

C ++ : 제네릭 클래스의 비 제네릭 메서드?

분류에서Dev

비 제네릭 클래스의 제네릭 메서드

분류에서Dev

C # 제네릭, 여기서 T 클래스 : (상속 클래스)

분류에서Dev

C # 제네릭 확장 메서드를 사용하여 컬렉션이 아닌 클래스에서 작동

분류에서Dev

C # dotnet에서 여러 제네릭 인수를 어떻게 제한합니까?

분류에서Dev

제네릭 클래스 메서드에 대한 올바른 확장 메서드를 얻는 방법은 무엇입니까?

분류에서Dev

클래스가 다른 유사한 메서드에 제네릭을 사용하는 방법

분류에서Dev

제네릭 메서드에 제네릭 클래스 객체 보내기 (Java)

분류에서Dev

제네릭 메서드에 대한 호출이 모호한 오류입니다.

분류에서Dev

제네릭 메서드에서 클래스 별 속성 처리

분류에서Dev

포인터를 포함하거나 포함하지 않을 수있는 목록 클래스의 제네릭 메서드에 대한 컴파일러 경고 2100 비활성화

분류에서Dev

열거 형에 대한 제네릭 메서드에서 속성 검색

분류에서Dev

비 제네릭 클래스의 제네릭 클래스 메서드

분류에서Dev

테이블에서 선택한 여러 클래스 제거

분류에서Dev

Kotlin에서 제한된 제네릭으로 추상 클래스 구현

분류에서Dev

제네릭 클래스의 호출 된 메서드와 동일한 T가있는 매개 변수로 C # 제네릭 클래스

분류에서Dev

rails 4.1 nil 클래스에 대한 정의되지 않은 메서드

Related 관련 기사

  1. 1

    제네릭 클래스의 정적 Create () 메서드에 대한 압축 구문?

  2. 2

    제네릭 클래스에 대한 필드 제약 조건-C #

  3. 3

    클래스의 여러 메서드에 대한 조건

  4. 4

    클래스 메서드에 대한 여러 포인터

  5. 5

    Swift 제네릭 팩토리 메소드에서 컴파일러가 Generic 클래스 'X'에 'Object'가 'Y'를 준수해야한다고 경고하는 이유

  6. 6

    main.cpp의 제네릭 클래스에 대한 operator> 오버로드 방법

  7. 7

    제네릭 하위 클래스 메서드가 C #에서 허용 할 수있는 제한 형식

  8. 8

    제네릭 Dart 메서드에서 제네릭 유형 T에 대한 제약을 적용하는 방법

  9. 9

    여러 자식에 대한 부모 클래스의 메서드 정의

  10. 10

    컴파일러에서 찾을 수없는 제네릭 형식 클래스의 C # 확장 메서드

  11. 11

    비 제네릭 정적 팩토리 메서드를 구현하여 문자열 입력에서 다양한 제네릭 클래스를 만듭니다 ( "동적"유형을 사용하지 않음).

  12. 12

    C ++ : 제네릭 클래스의 비 제네릭 메서드?

  13. 13

    C ++ : 제네릭 클래스의 비 제네릭 메서드?

  14. 14

    비 제네릭 클래스의 제네릭 메서드

  15. 15

    C # 제네릭, 여기서 T 클래스 : (상속 클래스)

  16. 16

    C # 제네릭 확장 메서드를 사용하여 컬렉션이 아닌 클래스에서 작동

  17. 17

    C # dotnet에서 여러 제네릭 인수를 어떻게 제한합니까?

  18. 18

    제네릭 클래스 메서드에 대한 올바른 확장 메서드를 얻는 방법은 무엇입니까?

  19. 19

    클래스가 다른 유사한 메서드에 제네릭을 사용하는 방법

  20. 20

    제네릭 메서드에 제네릭 클래스 객체 보내기 (Java)

  21. 21

    제네릭 메서드에 대한 호출이 모호한 오류입니다.

  22. 22

    제네릭 메서드에서 클래스 별 속성 처리

  23. 23

    포인터를 포함하거나 포함하지 않을 수있는 목록 클래스의 제네릭 메서드에 대한 컴파일러 경고 2100 비활성화

  24. 24

    열거 형에 대한 제네릭 메서드에서 속성 검색

  25. 25

    비 제네릭 클래스의 제네릭 클래스 메서드

  26. 26

    테이블에서 선택한 여러 클래스 제거

  27. 27

    Kotlin에서 제한된 제네릭으로 추상 클래스 구현

  28. 28

    제네릭 클래스의 호출 된 메서드와 동일한 T가있는 매개 변수로 C # 제네릭 클래스

  29. 29

    rails 4.1 nil 클래스에 대한 정의되지 않은 메서드

뜨겁다태그

보관