私のアプリでは、ユーザー登録を禁止し、唯一の管理者ユーザーによって管理されるようにしています。これは、アプリケーションが非常に少数のチームによってのみ使用されることを意図しているためです。
ただし、現時点でユーザーを作成するとき。作成したユーザーが自動的にサインインし、ホームページにリダイレクトされ、サインインしてくれてありがとうというフラッシュ メッセージが表示されます。
これは正しくなく、複数のユーザーを作成すると、既にサインインしているというエラーが表示されるため、問題が発生します。
これが私のuser.rbです
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :token_authenticatable, :confirmable,
# :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
# Setup accessible (or protected) attributes for your model
attr_accessible :email, :username, :password, :password_confirmation, :remember_me
end
私のusers_controller.rb
class UsersController < ApplicationController
# GET /users
# GET /users.xml
def index
@users = User.all
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @users }
end
end
# GET /users/1
# GET /users/1.xml
def show
@user = User.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @user }
end
end
# GET /users/new
# GET /users/new.xml
def new
@user = User.new
@current_method = "new"
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @user }
end
end
# GET /users/1/edit
def edit
@user = User.find(params[:id])
end
# POST /users
# POST /users.xml
def create
@user = User.new(params[:user])
respond_to do |format|
if @user.save
format.html { redirect_to(@user, :notice => 'User was successfully created.') }
format.xml { render :xml => @user, :status => :created, :location => @user }
else
format.html { render :action => "new" }
format.xml { render :xml => @user.errors, :status => :unprocessable_entity }
end
end
end
# PUT /users/1
# PUT /users/1.xml
def update
@user = User.find(params[:id])
respond_to do |format|
if @user.update_attributes(params[:user])
format.html { redirect_to(@user, :notice => 'User was successfully updated.') }
format.xml { head :ok }
else
format.html { render :action => "edit" }
format.xml { render :xml => @user.errors, :status => :unprocessable_entity }
end
end
end
# DELETE /users/1
# DELETE /users/1.xml
def destroy
@user = User.find(params[:id])
@user.destroy
respond_to do |format|
format.html { redirect_to(users_url) }
format.xml { head :ok }
end
end
end
私のルート
DocumentManager::Application.routes.draw do
devise_for :users
get "index/index"
devise_for :users, :controllers => {:sessions => 'sessions'}
resources :clients, :jobs, :users
end
誰かが私を正しい方向に向けたり、探している機能を取得する方法を知ったりできますか?
私が言ったように。ユーザー作成画面に戻るにはリダイレクトが必要です。ユーザーは自動的にサインインせず、フラッシュメッセージは別のものにする必要があります。