私の既存のアプリは、ユーザ認証にDeviseを使用しています。これは、ユーザ登録/確認プロセスでうまく動作します。ユーザーは電子メールアドレス、パスワード、およびパスワード確認を入力するだけです。彼らは確認メールを受け取って、すべてが良いです!Ruby on Railsのパスワードオーバーライドを変更する
ここで、account_admins
に、追加のユーザーを作成できるようにしたいと考えています。
コントローラとフォームが接続されており、ユーザーが作成されています。しかし、account_adminがpassword
とpassword_confirmation
フィールドをバイパスできるようにする必要があることが私には分かります。 それ以外の場合は、account_adminユーザーが作成したパスワードで各ユーザーに個別の電子メールを送信する必要があります。
代わりに、それだけでユーザーを作成し、ユーザに&電子メールにパスワードを考案を作成している、account_adminが必要なフィールドfirst_name
に記入していlast_name
、phone_number
、およびemail
する方が理にかなっています。私はDevise resourcesかなりの数を見てきましたし、other things皆さんが行っているが、それらのほとんどは完全に私がやりたくない、などよくご確認のプロセスを再配線私を持っている。
<%= form_for @user, url: users_admin_index_path(@user) do |f| %>
<%= f.label :first_name, "First Name", class: "control-label col-md-2 col-sm-2 col-xs-12" %>
<%= f.text_field :first_name, class: "form-control", :required => true, required: "" %>
<%= f.label :last_name, "Last Name", class: "control-label col-md-2 col-sm-2 col-xs-12" %>
<%= f.text_field :last_name, class: "form-control", :required => true, required: "" %>
<%= f.label :email, "Email", class: "control-label col-md-2 col-sm-2 col-xs-12" %>
<%= f.email_field :email, class: "form-control", :required => true, required: "" %>
<%= f.label :phone_number, "Phone Number", class: "control-label col-md-2 col-sm-2 col-xs-12" %>
<%= f.text_field :phone_number, class: "form-control", :required => true, required: "" %>
<%= f.label :password, "Password", class: "control-label col-md-2 col-sm-2 col-xs-12" %>
<%= f.password_field :password, class: "form-control", :required => true, required: "" %>
<%= f.label :password_confirmation, "Password Confirmation", class: "control-label col-md-2 col-sm-2 col-xs-12" %>
<%= f.password_field :password_confirmation, class: "form-control", :required => true, required: "" %>
<%= link_to "Cancel", "", class: "btn btn-danger" %>
<%= f.submit "Submit", class: "btn btn-success" %>
<% end %>
と関連するコントローラメソッドcontrollers/users_controller.rb
:
だから、ここに私のフォームビューviews/users/new.html.erb
ある
class UsersController < ApplicationController
before_action :get_company_and_locations
def new
if current_user.is_account_owner
@user = User.new
else
flash[:danger] = "You do not have permission to do this action!"
end
end
def create
@user = User.new(user_params)
@user.company_id = current_user.company.id
if @user.save
flash[:success] = "User succesfully created!"
redirect_to :back
else
render :new
end
end
private
def user_params
params.require(:user).permit(:first_name, :last_name, :email, :password, :password_confirmation)
end
end
そして、私はまた私のUser
モデルの工夫使用していているので、私がする必要私のroutes.rb
に以下を追加してください:
resources :users_admin, :controller => 'users'
を招待するためのフォームを追加します。私はそれを試してみましょう! – Godzilla74
このように見えます。しかし、いくつかの重いカスタマイズに取り組んでいます。 – Godzilla74