首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让注册用户注册其他用户?

问如何让注册用户注册其他用户?
EN

Stack Overflow用户
提问于 2012-05-27 20:44:21
回答 1查看 217关注 0票数 0

我正在为我的一个朋友创建一个信息系统,其中(已经)注册的用户可以注册其他用户在系统内使用。已经注册的用户还必须充当新注册用户(即子用户)的“父”。在索引页上,注册用户可以看到他/她注册的用户的信息。我已经写了一些代码了。但是,当注册用户想要注册另一个用户时,我会从Devise获得以下消息:“您已经登录了。”另外,parent_id目前没有保存在新注册的用户中。

我的问题是:

  • 如何修改我的RegistrationController#create方法,以便将parent_id存储在新创建的用户中?
  • 如何修改设计,以便在用户中登录、注册新用户?

我正在使用Devise注册/确认等。我正在使用的祖先宝石,我使用的父子关系。

我已经创建了自己的Devise::Registrations::RegistrationsController类RegistrationsController:

代码语言:javascript
复制
  def new
    super
  end

  def create
    super
  end

  def update
    super
  end

  def index
    @user = current_user
  end
end

Registrations#new.html.erb文件:

代码语言:javascript
复制
<% 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" %>

Registrations#index.html.erb文件:

代码语言:javascript
复制
<% title "Geregistreerde owners" %>

<% if @user.blank? || !@user.has_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>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-27 20:52:41

您不希望将parent_id值从表单传递给控制器,因为这并不十分安全(只需编辑html即可更改)。

在自定义控制器的创建操作中,在调用Super之前添加以下内容:

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

而且,假设您已经正确地建立了您的协会,它应该可以工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10777134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档