2012-12-10 3 views
0

내 사용자 하위 클래스 - 회원 및 파트너에 대해 2 개의 약간 다른 가입 프로세스를 설정하려고합니다. 나는 그것을 이렇게 만들고 싶다. :사용자 하위 클래스에 대한 별도의 가입 절차

/users/sign_up 사용자를 회원으로 등록한다 (그래서 나는 'Member'라는 값으로 숨겨진 필드를 가지고있다.) 매력처럼 작동한다.

그러나 또한 내가 원하는 :

/사용자/파트너/sign_up 그들에게 값 '파트너'를 돌린다 약간 다른 형태를 제공 할 수 있습니다.

나는 특별히 이것을 2 개의 URL로 달성하기를 원하기 때문에 다른 유형의 사용자에게 다른 링크로 가입 할 수 있습니다.

내 인증 시스템에 Devise를 사용하고 있습니다.

나는 별도의 컨트롤러, partner_registrations_controller와 같은 것을 생성해야하고, devise로부터 상속 받아야한다고 확신하지만, 어떤 코드가 컨트롤러에 있어야하는지 전혀 모른다.

또한 특정 'new.html.erb'양식이있는 views/users 폴더 내에 'partner_registrations'라는 새 폴더를 만들어야한다고 생각합니다. 내가 GitHub의에이 위키 페이지를 읽은

devise_for :users, :controllers => { :registrations => :registrations } do 
     get 'users/partner/sign_up', to: 'devise/registrations#new' 
    end 

: https://github.com/plataformatec/devise/wiki/How-To:-Customize-routes-to-user-registration-pages하지만 난 그것을위한 현명한 비이야

는 그리고 마침내 나는 같은 경로로 뭔가를 할 필요가 알고있다.

도움을 주시면 대단히 감사하겠습니다.

경로 파일 :

devise_scope :user do 
    get 'sign_up', to: 'members#new', controller: {registrations: "members"} 
    get 'partners/sign_up', to: 'content_partners#new', controller: {registrations: "content_partners"} 
    end 
    devise_for :users, controllers: {registrations: :registrations} 

나는 각 아이를 위해 2 개의 별도 컨트롤러를 생성

답변

0

나는 내가 다른 사람이 미래에 도움이 발견 경우에 대답을 게시 할 줄 알았는데, 그것을 알아 냈다 난 그냥 다른 아이 클래스에 대한 컨트롤러 'ContentPartners'에 대한 '회원'대체

class MembersController < Devise::RegistrationsController 
    def new 
    resource = build_resource({}) 
    respond_with resource 
    end 

    # POST /resource 
    def create 
    build_resource 

    if resource.save 
     if resource.active_for_authentication? 
     set_flash_message :notice, :signed_up if is_navigational_format? 
     sign_up(resource_name, resource) 
     respond_with resource, :location => after_sign_up_path_for(resource) 
     else 
     set_flash_message :notice, :"signed_up_but_#{resource.inactive_message}" if is_navigational_format? 
     expire_session_data_after_sign_in! 
     respond_with resource, :location => after_inactive_sign_up_path_for(resource) 
     end 
    else 
     clean_up_passwords resource 
     respond_with resource 
    end 
    end 
end 

: 유증에 의해 주어진 기본적으로 같은 새로운 작성하는 작업과 클래스.

다음으로 Views/Users 폴더에 2 개의 새 폴더를 만들었습니다. 저에게 잡힌 잡화가 너무 많아서/members 및/content_partners가되어야합니다. 그런 다음 각 폴더에서 고유 한 'new.html.erb'파일을 만들었습니다.

그게 전부입니다.

관련 문제