我一直在處理我的應用程序,其中我有許多角色和一些用戶。無法在Rails中使用Devise和CanCan進行sign_up
但是突然間我無法再註冊了。登錄精品工程,但始終簽署了重定向我回到了簽字頁,併產生了同樣的錯誤:
控制檯總是顯示下面當我嘗試註冊:
Started POST "/registers/user/registration" for 127.0.0.1 at 2013-04-18 00:48:22 +0100
Processing by RegistersController#registration as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"ofucDxxzZFbTVLfVaA3QxixOHL2V9hzxfSFU/99Pd60=", "user"=>{"name"=>"Omar Arroum", "email"=>"[email protected]", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "commit"=>"Sign up", "id"=>"user"}
Completed 401 Unauthorized in 1ms
Started GET "https://stackoverflow.com/users/sign_in" for 127.0.0.1 at 2013-04-18 00:48:22 +0100
Processing by Devise::SessionsController#new as HTML
Rendered devise/shared/_links.html.erb (0.4ms)
Rendered devise/sessions/new.html.erb within layouts/application (9.8ms)
Rendered layouts/_navigation.html.erb (1.3ms)
Rendered layouts/_messages.html.erb (0.1ms)
Completed 200 OK in 63ms (Views: 61.6ms | ActiveRecord: 0.0ms)
我還沒有作出了`user_controller.rb任何改變,所以不知道是什麼原因造成這個問題
編輯:增加了RegistersController
class RegistersController < ApplicationController
#before_filter :authenticate_user!
load_and_authorize_resource
# GET /registers
# GET /registers.json
def index
@registers = Register.all
respond_to do |format|
format.html # index.html.erb
format.json { render json: @registers }
end
end
# GET /registers/1
# GET /registers/1.json
def show
@register = Register.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @register }
end
end
# GET /registers/new
# GET /registers/new.json
def new
@register = Register.new(:event_id => params[:event_id])
respond_to do |format|
format.html # new.html.erb
format.json { render json: @register }
end
end
# GET /registers/1/edit
def edit
@register = Register.find(params[:id])
end
# POST /registers
# POST /registers.json
def create
@register = Register.new(params[:register])
respond_to do |format|
if @register.save
format.html { redirect_to @register, notice: 'Register was successfully created.' }
format.json { render json: @register, status: :created, location: @register }
else
format.html { render action: "new" }
format.json { render json: @register.errors, status: :unprocessable_entity }
end
end
end
# PUT /registers/1
# PUT /registers/1.json
def update
@register = Register.find(params[:id])
StudentRegister.find_all_by_register_id(@register).each do |streg|
streg.update_attributes(:present => false, :late => false)
#sets the users status as being absent, mainly for the purpose of when copying a new register,
#as the presence and lateness is otherwise maintained
end
respond_to do |format|
if @register.update_attributes(params[:register])
format.html { redirect_to @register, notice: 'Register was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @register.errors, status: :unprocessable_entity }
end
end
end
# DELETE /registers/1
# DELETE /registers/1.json
def destroy
@register = Register.find(params[:id])
@register.students.delete_all_on_destroy
@register.destroy
respond_to do |format|
format.html { redirect_to registers_url }
format.json { head :no_content }
end
end
def registration
@studentregister = StudentRegister.find_all_by_register_id(params[:id])
end
def copy
@register = Register.find(params[:id]).amoeba_dup #Creates a duplicate of the existing register with all Students in it
@register.date = Date.today #Sets the registers date to today's date
@register.save
respond_to do |format|
format.html { redirect_to edit_register_path(@register) } #Redirects to the edit page so that they can make any updates
format.json { head :no_content }
end
end
end
奇怪的是,爲什麼它試圖使用'RegistersController'? 'Register'是我自己的模型,不是Devise的模型,所以不知道爲什麼會這樣。我會爲你更新以查看我的'RegisterController' – omarArroum
您可以在路由中的'devise_for'方法中自定義您的表單以使用您自己的控制器,或者您擁有':controllers => {:registrations =>'registers'}'' .RB。 –
我的'routes.rb'使用默認的'devise_for:users resources:users'方法。問題是,爲什麼當這是註冊階段時它試圖訪問RegistersController? – omarArroum