나는 두 개의 매우 레일 애플 리케이션에 대한 내 루비 개체에 비슷한 방법이 있습니다. 나는 그들이 결합 될 수 있다는 것을 알고, 나는 단지 어떻게해야할지 모른다. (당신이 #try
를 사용하지 않는, return unless
외에 가능한 NILS을 처리 할 수있는 더 아름다운 길을 찾을 수 있다면 추가 포인트.)Ruby : 비슷한 두 가지 방법을 하나에 결합 하시겠습니까?
def is_portal_admin?(resource)
return unless resource.user && resource.user.clinic_memberships.any?
memberships = resource.user.clinic_memberships.collect { |membership| membership.portal_admin? }
memberships.include?(true)
end
def is_staff_admin?(resource)
return unless resource.user && resource.user.clinic_memberships.any?
memberships = resource.user.clinic_memberships.collect { |membership| membership.staff_admin? }
memberships.include?(true)
end
메서드 호출의 동작 대신 심볼 또는 무언가로 사용 권한을 정의 해보십시오. 그런 다음 리소스 및 사용 권한 기호를 사용하는 단일 메서드 (is_admin_type)로 리팩토링 할 수 있습니다. –