상태 머신 패턴을 사용하는 루비 앱이 있습니다. 사용자는 응용 프로그램을 제출하고 승인되고 검토되면 해당 응용 프로그램을 다른 사용자가 볼 수 있습니다.관리자는 상태 시스템과 어떻게 상호 작용해야합니까?
또한 응용 프로그램은 ActiveAdmin을 사용하여 관리자가 응용 프로그램을 "초안"상태에서 "승인 된"상태로 이동하고 궁극적으로 "성공적으로 게시 된"상태 또는 "중단 된"상태로 이동할 수 있습니다.
내 문제는 관리자에게 모든 주에서 작업을 수행 할 수있는 특별한 권한을 부여하는 방법을 알 수 없다는 것입니다. 예를 들어 승인을 받으면 사용자가 편집 할 수 없더라도 관리자는 모든 상태의 응용 프로그램을 편집 할 수 있어야합니다. 나는 기본적으로 false 인 '편집 가능한'메소드를 가지고 있지만, 사용자가 애플리케이션을 편집 할 수 있도록 허용하기 위해 가끔 true로 설정합니다.
def editable?
true
end
"admin_editable?"과 비슷한 메서드를 만들겠습니까? 모든 주에서 그것을 사실로 설정하십시오. 하지만 해킹처럼 보입니다.
모범 사례가 있습니까? 상태 머신을 모두 함께 스크랩해야합니까? 또는 상태에 관계없이 관리자가 프로젝트를 편집하도록 허용하려면 어떻게해야합니까?
참조 http://stackoverflow.com/questions/13944703/rails-cancan-and-state-machine-authorizing-states – bjelli