Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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 Rails:通过UI创建其他帐户登录_Ruby On Rails_Ruby On Rails 4_Devise - Fatal编程技术网

Ruby on rails Rails:通过UI创建其他帐户登录

Ruby on rails Rails:通过UI创建其他帐户登录,ruby-on-rails,ruby-on-rails-4,devise,Ruby On Rails,Ruby On Rails 4,Devise,我希望当前登录的具有管理员权限的Desive用户能够为其公司的成员创建其他登录 目前,我有一个模型设置,允许我创建与当前登录的Desive用户相关的其他帐户 额外客户账户.rb: 我现在希望允许登录的用户自己创建其他帐户,而不必通过终端来创建,也不必费劲地在视图中链接表单以点击模型中的方法 如果可能的话,我更愿意将方法保留在模型中,而不是在控制器中复制代码 额外客户账户控制器.rb: 这是我在视图中的尝试,我希望控制器中的create方法包含first_name、last_name、email和

我希望当前登录的具有管理员权限的Desive用户能够为其公司的成员创建其他登录

目前,我有一个模型设置,允许我创建与当前登录的Desive用户相关的其他帐户

额外客户账户.rb:

我现在希望允许登录的用户自己创建其他帐户,而不必通过终端来创建,也不必费劲地在视图中链接表单以点击模型中的方法

如果可能的话,我更愿意将方法保留在模型中,而不是在控制器中复制代码

额外客户账户控制器.rb:

这是我在视图中的尝试,我希望控制器中的create方法包含first_name、last_name、email和password参数。我还需要通过当前登录的客户ID

额外客户账户/new.html.erb:

我希望能有一些进一步的指导,告诉我如何将我的视图与一个精简的控制器结合起来,并在模型中找到方法

class ExtraCustomerAccount < ActiveRecord::Base

  attr_accessible :email, :customer_id, :first_name, :last_name, :password, :password_confirmation

  belongs_to :customer, :foreign_key => :customer_id

  validates :customer_id, :first_name, :last_name, :email, :presence => true

  def self.create_with_user(email, password, first_name, last_name, customer_id)
    e = ExtraCustomerAccount.create!(email: email, first_name: first_name, last_name: last_name, customer_id: customer_id)
    User.create!(first_name: e.first_name, last_name: e.last_name, email: e.email, password: password, password_confirmation: password)
  end
end
$ ExtraCustomerAccount.create_with_user("email@gmail.com", "changeme123", "First_name", "Last_name", 1)
class ExtraCustomerAccountsController < ApplicationController

  def new
  end

  def create
    @new_customer_account = # What goes here to call the method in model?!
  end
end
<%= form_for @new_customer_account, :url => { action: "create" }, do |f| %>      

    <div class="form-group">
      <div class="controls">                                 
        <%= f.text_field :first_name, :class => 'form-control custom-form-control', :placeholder => 'First name' %>                
      </div>
    </div>

    <div class="form-group">
      <div class="controls">                                 
        <%= f.text_field :last_name, :class => 'form-control custom-form-control', :placeholder => 'Last name' %>                
      </div>
    </div>

    <div class="form-group">
      <div class="controls">                                 
        <%= f.email_field :email, :class => 'form-control custom-form-control', :placeholder => 'Email' %>                
      </div>
    </div>

    <div class="form-group">
      <div class="controls">                                
        <%= f.password_field :password, :class => 'form-control custom-form-control ', :placeholder => 'Password' %>                
      </div>
    </div>            

    <div class="form-actions">
      <button type="submit" class="btn-account-primary">Create Account</button>
    </div>

<% end %>