관리자 계정 만 새 사용자 계정을 만들 수있는 응용 프로그램을 만들고 있습니다. 나는 인증을 위해 devise 4.2를 사용하고 레일 4.2.6을 사용하여 인증을 위해 cancancan을 사용하고 있습니다. 내 문제는 새로운 사용자가 생성되지 않고 오류 메시지가 표시되지 않으므로 잘못된 점을 알지 못합니다. 내 등록 컨트롤러 :새 사용자가 저장되지 않음을 알려주십시오.
class Users::RegistrationsController < Devise::RegistrationsController
before_action :configure_sign_up_params, only: [:create]
before_action :configure_account_update_params, only: [:update]
#before_action :authorize_admin, only: [:create, :new, :destroy]
before_action :authenticate_user!
load_and_authorize_resource
# GET /resource/sign_up
def new
super
end
# POST /resource
def create
build_resource(sign_up_params)
resource.save
yield resource if block_given?
if resource.persisted?
if resource.active_for_authentication?
set_flash_message! :notice, :signed_up
#sign_up(resource_name, resource)
respond_with resource, location: after_sign_up_path_for(resource)
else
set_flash_message! :notice, :"signed_up_but_#{resource.inactive_message}"
expire_data_after_sign_in!
respond_with resource, location: after_inactive_sign_up_path_for(resource)
end
else
clean_up_passwords resource
set_minimum_password_length
respond_with resource
end
end
# GET /resource/edit
def edit
super
end
# PUT /resource
def update
super
end
# DELETE /resource
def destroy
super
end
def cancel
super
end
protected
def configure_sign_up_params
devise_parameter_sanitizer.permit(:sign_up, keys: [:name])
end
def configure_account_update_params
devise_parameter_sanitizer.permit(:account_update, keys: [:name])
end
def after_sign_up_path_for(resource)
super(resource)
end
def after_inactive_sign_up_path_for(resource)
super(resource)
end
end
내보기 : 나는 계정 생성에 새 사용자의 징후가 내가 "당신은 이미에 기록됩니다"라는 플래시 메시지를 받고 있었기 때문에 라인에서 주석
<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
<%= devise_error_messages! %>
<div class="field">
<%= f.label :name %>
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :email %><br />
<%= f.email_field :email%>
</div>
<div class="field">
<%= f.label :password %>
<% if @minimum_password_length %>
<em>(<%= @minimum_password_length %> characters minimum)</em>
<% end %><br />
<%= f.password_field :password, autocomplete: "off" %>
</div>
<div class="field">
<%= f.label :password_confirmation %><br />
<%= f.password_field :password_confirmation, autocomplete: "off" %>
</div>
<div class="actions">
<%= f.submit "Sign up" %>
</div>
<% end %>
<%= render "devise/shared/links" %>
관리자로 로그인 한 상태에서 새 사용자를 만들면 새로운 사용자가 저장되지 않는 이유라고 생각하게되었습니다. 새로운 사용자를 만들려고 할 때 같은 메시지를 보내는 플래시 메시지가 계속 나오지만 이것은 잘못된 것으로 보입니다. 어떤 도움을 주셔서 감사합니다.