Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 如何让注册用户向Desive注册其他用户?_Ruby On Rails 3_Devise_Ancestry - Fatal编程技术网

Ruby on rails 3 如何让注册用户向Desive注册其他用户?

Ruby on rails 3 如何让注册用户向Desive注册其他用户?,ruby-on-rails-3,devise,ancestry,Ruby On Rails 3,Devise,Ancestry,我正在为我的一个朋友创建一个信息系统,在这里(已经)注册的用户可以注册其他用户在系统中使用。已经注册的用户还必须充当新注册用户(即子用户)的“父用户”。 在索引页上,注册用户可以查看他/她注册的用户的信息。 我已经写了一些代码。但是,当一个注册用户想要注册另一个用户时,我会从Desive收到以下消息:“您已经登录了。”此外,家长id当前未保存在新注册的用户中 我的问题是: 如何修改我的RegistrationController#create方法,以便将父id存储在新创建的用户中 如何修改De

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

我的问题是:

  • 如何修改我的RegistrationController#create方法,以便将父id存储在新创建的用户中
  • 如何修改Desive,以便登录用户,注册新用户
我正在使用Desive进行注册/确认等。 我用于亲子关系的祖传宝石

我已经创建了自己的注册控制器: 类设计::注册::注册控制器<设计::注册控制器

  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" %>
<% 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>

资源名称:url=>注册路径(资源名称))do | f |%>



“设计/共享/链接”%>
注册#index.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" %>
<% 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>

U heeft geen所有者Geregistererd

电子邮件地址 “Weet u het zeker?”,:方法=>:删除%>


您不想将父id值从表单传递到控制器,因为这不是很安全(只需编辑html即可更改)

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

params[:user][:parent\u id]=当前用户的当前用户id


而且,假设你已经正确地建立了你的协会,它应该会起作用。

@rolfmao,谢谢!您还知道如何允许Desive让已经注册的用户注册新用户吗?我将创建一个完全独立的控制器来实现这一点。