2012-05-27 3 views
0

(이미) 등록 된 사용자가 시스템 내에서 사용하기 위해 다른 사용자를 등록 할 수있는 친구를위한 정보 시스템을 만들고 있습니다. 이미 등록 된 사용자는 새롭게 등록 된 사용자 (자녀)의 '부모'역할을해야합니다. 색인 페이지에서 등록 된 사용자는 등록한 사용자의 정보를 볼 수 있습니다. 이미 일부 코드를 작성했습니다. 그러나 등록 된 사용자가 다른 사용자를 등록하려고하면 Devise에서 "이미 로그인했습니다."라는 메시지가 나타납니다. 또한 parent_id는 현재 새로 등록 된 사용자에게 저장되지 않습니다.Registred 사용자가 다른 사용자를 Devise에 등록시키는 방법?

내 질문은 :

  • 은 어떻게 RegistrationController 번호를 수정할 수 있습니다 만들 방법 PARENT_ID 새로 생성 된 사용자에 저장되도록?
  • 로그인 사용자가 새로운 사용자를 등록 할 수 있도록 Devise를 어떻게 수정할 수 있습니까?

내가 등록/확인 등 내가 부모 - 자식 관계를 사용하고 조상 보석을 위해 고안를 사용하고 있습니다.

나는 이미 내 RegistrationsController 생성 : 클래스 고안 :: 등록 :: RegistrationsController을 < 고안 :: RegistrationsController

def new 
    super 
    end 

    def create 
    super 
    end 

    def update 
    super 
    end 

    def index 
    @user = current_user 
    end 
end 

등록 #의 new.html.erb 파일 :

<% title "Owner registreren" %> 

<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %> 
    <%= devise_error_messages! %> 

    <%= f.hidden_field :parent_id %> 

    <div><%= f.label :email, "Email adres" %><br /> 
    <%= f.email_field :email %></div> 

    <div><%= f.label :password, "Wachtwoord" %><br /> 
    <%= f.password_field :password %></div> 

    <div><%= f.label :password_confirmation, "Wachtwoord (bevestiging)" %><br /> 
    <%= f.password_field :password_confirmation %></div> 

    <div><%= f.submit "Registreer" %></div> 
<% end %> 

<%= render :partial => "devise/shared/links" %> 

등록 # index.html.erb 파일 :

<% title "Geregistreerde owners" %> 

<% if @user.blank? || [email protected]_children? %> 
    <p>U heeft geen owners geregistreerd</p> 
<% else %> 
    <table> 
     <tr> 
      <th>Email adres</th> 
     </tr> 
     <% for user in @user.children %> 
      <tr> 
       <td><%= child.email %></td> 
       <td><%= link_to "Weergeven", child %></td> 
       <td><%= link_to "Bewerken", edit_user_registration_path(user) %></td> 
       <td><%= link_to "Verwijderen", product, :confirm => 'Weet u het zeker?', :method => :delete %></td> 
      </tr> 
     <% end %> 
    </table> 
<% end %> 

<p><%= link_to "Nieuwe owner registreren", new_user_registration_path %></p> 

답변

0

매우 안전하지 않기 때문에 폼에서 컨트롤러로 parent_id 값을 전달하고 싶지 않습니다. 단순히 html을 편집하여 변경할 수 있습니다. 사용자 정의 컨트롤러의 생성 작용에

, 슈퍼에 전화하기 전에,이 추가 : 당신이 당신의 협회 제대로 설정을 가지고 가정,

params[:user][:parent_id] = current_user.id if current_user

을 그리고, 그것을 작동합니다.

+0

@rolfmao, 감사합니다. 또한 Devise가 이미 등록 된 사용자에게 새 사용자를 등록하도록 허용하는 방법을 알고 있습니까? – Nazeem

+0

나는 그렇게하기 위해 완전히 분리 된 컨트롤러를 만들 것이다. – roflmao

관련 문제