2010-12-07 3 views
0

Я использую Devise для аутентификации.Sub-users and Devise

Я использую его для регистрации и редактирования их учетной записи. Мне нужна возможность добавлять «под» пользователей в каждую учетную запись. Я могу заставить его работать, если я удалю: он может быть зарегистрирован в пользовательской модели, но при этом он прерывает edit_user_registration_path.

Что мне нужно TODO это:

Разрешить новым пользователям зарегистрироваться.

Разрешить существующим клиентам добавлять «Подпользователей» в свою учетную запись.

Я думаю, что для создания владельца учетной записи мне нужно использовать отношения для самостоятельной ссылки.

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: относится к отношениям внутри вашего пользователя. что-то вроде

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

большое спасибо за вашу помощь! Это сработало. – 2010-12-13 10:25:54

Смежные вопросы