Субпользователи и Devise - PullRequest
       4

Субпользователи и Devise

0 голосов
/ 07 декабря 2010

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

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

Что мне нужно сделать, это:

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

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

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

Вот код, который у меня есть на данный момент

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

(Если я удалю: регистрируемый, я могу создавать новых пользователей с помощью User 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 %>

1 Ответ

3 голосов
/ 08 декабря 2010

Вы можете добавить: 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...