내가 가진 사용자가 두 가지 종류가있는 레일 애플 리케이션 :Rails4 및 고안 : 최대 서명하는 것을에서 두 가지 역할을 차별화, 하나, 두 번째를 확인하지
역할 '선장'수신 선장, (양식 A를 통해) 등록하고 이메일을 통해 확인해야 함
팀장 인은 캡틴 (양식 B)이 작성하고 팀 관리 역할을받으며 확인 이메일을받지 못합니다. 지금 앱에 로그인하십시오.
class User < ActiveRecord::Base
before_create :assign_default_role
def assign_default_role
self.role = captain
end
의미가 있습니다 :
모두 내가 가입이 때 선장 역할을 할당 이런 짓을 다른 역할 (User.role)
와 사용자 모델에 있습니다. 이제 '팀원'역할을 지정하고 활성화 프로세스를 건너 뛰기 위해 Teammate에 대해 동일한 작업을 구성하려고합니다.
Devits를 사용하면 skip_confirmation_notification을 사용할 수 있습니다.before_create 캡틴 사용자 및 팀원 사용자를 어떻게 구분할 수 있습니까?
그들은 같은 모델이 모든 것이 "역할"& 나중에 "confirmed_at"열을 제외하고 데이터베이스에서 동일하기 때문에.
숨겨진 필드? Teacate 폼에서 hidden_field "confirmation"값을 false로 설정하려고 시도했지만 가장 좋은 방법인지 잘 모르겠습니다. 사용자 모델 내에 확인 행이 없으므로 전달 방법을 모르겠습니다. before_create 액션.
<%= f.hidden_field :confirmation, options = {value: false} %>
CREATE_TEAMMATE 방법? 사용자 컨트롤러 내부의 보조 작성 방법이지만 소리가 덜 들립니다.
누군가가 브라우저에서 편집 할 수 있기 때문에 보안되지 않은 숨겨진 필드로 '확인'을 사용하는 모든self.skip_confirmation_notification!
대단히 고마워요! 나는 숨겨진 필드보다 더 나은 방법을 찾고 있지만 지금은 파악할 수 없습니다 ... 기본적으로 가입 (홈 폼)하는 각 사용자는 기본적으로 캡틴 (상자에 틱하지 않음)입니다. 팀에 추가하는 사람들은 기본적으로 동료 (상자 없음) (2 차 양식)입니다. 동일한 모델에서 팀원은 가입을 통해 Captain이 될 수 있기 때문입니다. 팀장을 생성하기 위해 선장을 기록해야한다는 사실을 강조 했으므로 팀원이 선장에게 업데이트하기 전에 기록 할 수 없습니다. 그래서 current_user.try로 필터링 할 수 있습니다. – Patient55