개체의 user_id가 관리자가 아닌 계정과 연결되어 있으면 새 레코드 개체를 유효하지 않게하려고합니다.레일즈는 모델로부터 admin 레코드를 생성하는 사용자의 유효성을 검사 할 수 있습니까?
모델에서 user_id.admin == true로 만들 개체가 유효성 검사를하고 싶습니다. 나도 이러한 솔루션의
작동 :
validates :user_id, User.find(:user_id).admin?
before_save :user_is_admin, User.find(self.user_id).admin?
그래서, 내 질문은, 나는 그들이 관리자 경우 사용자와 수표를 조회하고, 오류가 발생합니다 유효성 검사를 쓰기 어떻게 그렇지 않은 경우 ?
P. 나는 이미 before_action으로 컨트롤러에서 관리자 검사를하고 있지만 관리자가 아닌 사용자가 어떻게 든 하나를 생성하고 테스트 목적으로 관리한다면 객체를 무효화하고 싶습니다.
이것이 최선의 방법이 아니라면 레일에서 유효성 검사를 만드는 방법에 대해 더 알고 싶습니다.
흠. 모델에서 잘 작동하는 것처럼 보입니다. 내가 디버그 할 수 있고 사용자를 조회 할 수 있지만 잘못된 사용자를 찾고 있습니다. 테스터가 아무도 발견하지 못했을 때 "ActiveRecord :: RecordNotFound : 'id'= app/models/post.rb : 12 :'creator_is_admin '에서 test/models/post_test.rb : 17 :'블록 내의' " 나는 올바른 방법으로 해결해야 할 것 같다. :) –
Jeremy