2010-02-10 1 views
1

Authlogic을 사용하고 있습니다. Entry 모델이 있는데 로그인 한 사용자가 요청한 경우 건너 뛸 수있는 유효성 검사 방법이 있습니다 (익명 사용자도 항목을 만들 수 있습니다). 컨트롤러에서와 같이은 Entry 모델 내부에서 사용할 수 없다고 가정합니다. 이 상황을 처리하는 가장 좋은 방법은 무엇입니까? 일종의 사용자 지정 저장 메서드를 작성하고 프로그래밍 방식으로 EntriesController에서 호출해야합니까? 아니면 모델 내부에서 로그인 상태를 확인하는 방법이 있습니까? 모델은 객체 상태를 담당해야하고 애플리케이션 상태는 담당해야하기 때문에 어쨌든 그렇게하고 싶지 않다고 생각합니다.Authlogic : 사용자가 로그인 한 경우 모델 유효성 검사

답변

2

Entrylogged_in이라는 가상 속성을 만듭니다. 사용자가 거짓 경우 로그인되어 있지 않은 경우

attr_accessor :logged_in 

컨트롤러에서 참으로 설정 entry.logged_in. 그런 다음 유효성 검사 메서드에서 해당 특성을 사용할 수 있습니다.

validate_on_create :my_check 

def my_check 
    unless self.logged_in? 
    # add errors 
    end 
end 
0

이 모델 내부에는`logged_in?`기능은 없습니다

valide_on_create :my_check, :unless => logged_in? 
+0

사용할 수 있습니다. –