2014-11-18 3 views
1

실제로 로그인 및 등록에 잘 사용하고 있습니다. 정상적으로 작동하는 확인 이메일을 보냅니다. 그러나 특정 경우에 확인 이메일을 보내야합니다. 나는 URL에 사용자 유형을 전달하고 그 대신에 메일을 설정하려고합니다. 두 가지 유형의 사용자가 있습니다. 하나는 자신의 계정을 확인하고 사용자의 자체 재설정은 자신의 계정 만 확인할 수 없으므로 관리자 만이 자신의 계정을 승인 할 수 있습니다.Devise : 특정 경우에 확인 이메일을 보내지 않을 수 있습니까?

def create 
    super 
    if params[:type]=='xyz 
     @user.skip_confirmation_notification! 
    end 
end 

두 가지 경우 모두 메일을 보냅니다. 어디 잘못되었는지 말해주십시오.

+0

@ user.skip_confirmation이 생각납니다! 작동합니다. –

+0

그것의 작동하지만 내가 그것을 사용하는 경우, 그것은 좋은 이메일을 보내지 않을 것이지만, 내가 원하지 않는 사용자 로그인을 허용합니다. –

+0

또 다른 아이디어가 있습니다. 상태를 가지고 인증 방법을 고안 할 때 또 다른 범위를 설정할 수 있습니까? –

답변

1

따라서 확인 가능한 모듈을 작성하면 다음 코드를 통해 확인 및 이메일을 보내지 않고 건너 뛸 수 있습니다.

def confirm_your_type_user_without_confirmation_email 
    # check your condition here and process the following 
    self.skip_confirmation! 
    self.confirm! 
    # condition may end here 
end 

이제 생성 후크에서 호출 할 수 있습니다.

class User < ActiveRecord::Base 
    after_create :confirm_your_type_user_without_confirmation_email 
    .... 
end 

더 참조하면이를 확인할 수 있습니다 내가 위에서 여기에 언급 한 바와 같이 Devise Confirmable module

이 솔루션은 비슷한해야합니다. 컨트롤러가 이러한 책임을 처리하는 것을 피하는 것이 가장 좋습니다. 컨트롤러가 취해야 할 것이 아니기 때문입니다. :) 내 대답이 당신에게 당신의 문제를 해결할 수있는 방법을 줄 수 있기를 바랍니다. 감사!

+0

당신의 도움에 감사드립니다. –

+0

당신은 대부분 환영합니다 :) – Rubyrider