2010-12-07 9 views
0

私はDeviseを認証に使用しています。サブユーザとDevise

私は、アカウントの登録と編集に使用しています。 "サブ"ユーザーを各アカウントに追加する機能が必要です。削除しても機能するようにすることができます:ユーザーモデルから登録可能ですが、これを実行するとedit_user_registration_pathが破損します。

私がする必要があるのは:

新規ユーザーにサインアップできます。

既存の顧客が自分のアカウントに「サブユーザー」を追加できるようにします。

私はアカウント所有者を作成するために自己参照関係を使用する必要があると思います。

現時点で私が持っているHERESにコード

class User < ActiveRecord::Base 
    devise :database_authenticatable, :registerable, 
     :recoverable, :rememberable, :trackable, :validatable 

    attr_accessible :email, :password, :password_confirmation, :remember_me, :name, :location, :country, :job_title, :company 
end 

(私は削除する場合:登録可能私はユーザーCRUDを使用して、新しいユーザーを作成することができます)

class UsersController < ApplicationController 
    def new 
    @user = User.new 
    respond_to do |format| 
     format.html 
    end 
    end 

    def create 
    @user = User.new(params[:user]) 
    if @user.save 
     respond_to do |format| 
     format.html { redirect_to :action => :index } 
     end 
    else 
     respond_to do |format| 
     format.html { render :action => :new, :status => :unprocessable_entity } 
     end 
    end 
    end 
end 

ユーザ/新

<h2>Register User</h2> 

<%= form_for(@user) do |f| %> 
    <%= f.error_messages %> 
    <p><%= f.label :email %><br /> 
    <%= f.text_field :email %></p> 

    <p><%= f.label :password %></p> 
    <p><%= f.password_field :password %></p> 

    <p><%= f.label :password_confirmation %></p> 
    <p><%= f.password_field :password_confirmation %></p> 

    <p><%= f.submit "Register" %></p> 
<% end %> 

答えて

2

あなたのユーザーの中に:has_many:relationshipという関係を追加することができます。

class User 
    belongs_to :parent, :class_name => 'User' 
    has_many :children, :class_name => 'User' 
    ... 
end 

のようなもので、あなたのコントローラーには親のユーザーへの参照を追加してください。

class UsersController < ApplicationController 
    def new 
    @user = User.new 
    @user.parent_id = params[:parent_id] 
    respond_to do |format| 
    end 
end 
+0

ご協力いただきありがとうございます。それは治療に効果があった。 –