我已經生成了額外的設計控制器,我想修改註冊控制器,只允許訪問該控制器上的新建,創建和刪除選項。我實現了一個方法super_user?
,它根據用戶的super_user狀態返回一個布爾值。問題定製設計控制器:require_no_authentication
def super_user?
if user_signed_in?
current_user.super_user == true ? true : false
else
false
end
end
然後在控制器I重定向並且如果super_user
方法返回false呈現閃光消息。當沒有用戶登錄或沒有超級用戶能力的signed_in用戶嘗試訪問sign_up頁面時,他們按計劃重定向。
def new
if super_user?
super
else
redirect_to root_url
flash[:warning]= "Only Administrators can add accounts"
end
end
然而,當與SUPER_USER能力的一個用戶登錄他們將被重定向到首頁,這消息被記錄到控制檯:
Filter chain halted as :require_no_authentication rendered or redirected
從我的理解,同時研究這個話題,這方法是Devise的一部分,用於重定向已經從sign_up和sign_in頁面登錄的用戶,因爲他們實際上已經是用戶。但在我的情況下,我希望超級用戶登錄後能夠訪問sign_up頁面來爲其他用戶進行登錄。有誰知道我如何解決這個問題?