특정 시간 동안 "읽기 전용 모드"에 넣고 싶은 대화 형 Ruby on Rails 응용 프로그램이 있습니다. 이를 통해 사용자는 필요한 데이터를 읽을 수 있지만 데이터베이스에 쓰는 작업은 차단할 수 있습니다.Ruby on Rails 응용 프로그램에 대한 읽기 전용 모드
이 작업을 수행하는 한 가지 방법은 쓰기가 수행되기 전에 확인 된 데이터베이스에 true/false 변수가 있는지 확인하는 것입니다.
내 질문. 거기에이 문제에 대한 더 우아한 해결책이 있습니까?
이 잠재적으로 흥미있는 솔루션입니다 (실제로 테스트되지 않은 코드는,하지만 당신은 ... 아이디어가 생각 난다). 특정 모델에 대해 read only 모드를 on/off로 전환하는 방법은 무엇입니까? – Nicolo77
ActiveRecord :: Base를 monkeypatching함으로써, 모든 모델에 영향을 미칠 것입니다 (나는 그것이 당신이 찾고있는 것이라고 생각했습니다). 'def readonly? '와 같이 실제 클래스를 검사하는 멋진 조건을 작성할 수 있습니다. self.class === MyProtectedClass? 사실 : 최고; 끝 '하지만, 그것은 혼란에 빠지게 될 수 있습니다 - 아마 읽기 전용을 직접 무시하는 것이 더 깔끔합니까? 메소드를 수정하려는 모든 모델 클래스에 추가하십시오. – Zargony
Btw, 대신 읽기 전용? 메소드를 사용한다면, 모든 레코드를 읽기 전용으로 설정하는 after_find 콜백을 추가하는 것만으로도 눈에 거슬리지 않고 '깨끗합니다.': def after_find; 읽기 전용 !; end' – Zargony