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] 삭제
몇 마디 만하겠습니다