문제

나는있다 User.create 새 사용자를 잠정적으로 등록하고 생성 된 비밀번호로 이메일을 보내는 조치. 그 행동을 완료하는 가장 철도와 같은 방법은 무엇입니까? 지금부터 정확히 모든 것을하고 싶습니다. 더 이상 말도 안됩니다. 이번에는 진지합니다.

나는 이것이 옵션이라고 생각한다 ...

  1. 호출 된 뷰를 만듭니다 login_email_sent.html.haml 그리고 그것을 렌더링합니다. ( "감사합니다, 로그인과 함께 이메일이 전송되었습니다."와 같은 메시지가 있습니다.)

  2. 호출 된 뷰를 만듭니다 create.html.haml 그리고 레일이 기본적으로 그것을 렌더링하게합니다.

  3. 플래시에 메시지와 함께 제출 한 양식과 동일한 페이지로 사용자를 리디렉션합니다.

또는 다른 것...?

도움이 되었습니까?

해결책

이것은 더 많은 사용자 경험 질문입니다.

동작을 생성하고 출력이없는 것으로 맡기십시오 (또는 단순한 201 Created 헤더 API 호출로 생성 된 경우). do a redirect_to 어느 쪽이든 :

  1. 그들에게 기다리는 방법과 다음에 어떤 일이 일어날 지 알려주는 감사 페이지
  2. 눈에 띄는 플래시 메시지가있는 홈페이지는 방금 무슨 일이 있었는지 알려줍니다.

99.9%의 경우 생성 템플릿이 필요하지 않아야합니다.

def create
  User.create(...)
  respond_to do |format|
    format.html { redirect_to signup_complete_url }
    format.xml  { render :head => :created }
  end
end

예를 들어.

다른 팁

확실히 옵션 3, 쇼 액션으로 리디렉션됩니다. 이 작업을 수행하면 작업이 완료되면 사용자가 리디렉션되므로 실수로 역사로 돌아가서 다시 게시 할 수 없습니다. 또한 렌더링 된 페이지를 북마크/저장 할 수 있습니다.

로그인 페이지로 리디렉션하고 플래시 메시지로 이메일을 확인하여 계정 검증 및 로그인에 대한 추가 지침을 확인하십시오. 많은 사람들이 사용자 검증에 대해 자동으로 사용자를 로그인하는 것을 제안하지만 제 생각에는 민감한 사이트의 보안 문제입니다.

등록하지 않고 사이트에 유용하게 할 수있는 것이 있는지에 따라 다릅니다. 그런 다음 홈페이지로 리디렉션하고 플래시를 사용하여 이메일이 전송되고 그 동안 둘러 보도록 초대하는 메시지를 표시합니다.

그들이 할 수있는 일이 없다면 정보/FAQ가있는 환영하는 페이지로 리디렉션하여 헤드 스타트를 시작하고 가치있는 무언가에 가입 한 것처럼 느낄 수 있습니다.

또한 이메일로 암호를 보내는 대신 비밀번호 및 기타 세부 정보를 설정할 수있는 사용자 계정 설정 페이지에 대한 링크를 보내는 것을 고려하십시오. 링크에는 새 사용자 계정과 관련된 백 도어 액세스 코드가 포함됩니다. 이 페이지가 제출되고 검증되면 백 도어 코드를 삭제할 수 있습니다.

사용자가 새 비밀번호를 설정하자마자 잊혀진 암호에 동일한 접근 방식을 사용할 수 있습니다. 또는 기억하고 일반적으로 백도어 코드가 삭제됩니다.

이 접근법의 유일한 문제는 사이트에 두 개의 브라우저 창이나 탭이 열릴 수 있다는 것입니다. 그러나 초기 가입 양식에 너무 많은 질문을함으로써 사람들을 겁나게하지 않고 필요한 다른 정보 (주소, DOB 또는 무엇이든)를 요구할 수있는 기회를 제공합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top