2012-07-10 166 views
1

我有一個自定義的用戶像這樣的自定義設計用戶:未經授權編輯

class PersonsController < UsersController 

end 

然而,就好籤訂後,當我點擊「人/編輯」,我重定向到登錄頁面。 ..我可以在日誌中看到如下:

處理由人:: RegistrationsController#編輯爲HTML完成 401授權在0毫秒

ŧ如果我再次重定向到登錄頁面,此時我沒有失去會話,我可以單擊我的個人資料並查看帳戶詳細信息。

只是不知道爲什麼設計在我登記控制器

class Person 
    class RegistrationsController < Devise::RegistrationsController 
    end 
end 

任何幫助與編輯操作

我也有以下的結構問題,它的讚賞它。謝謝。

回答

1

其實我找到了解決辦法,我在我的定義Person重新定義這個方法:: RegistrationsController

def authenticate_scope! 
    send(:"authenticate_user!", :force => true) 
    self.resource = send(:"current_user") 
end 

看來會話不具有自定義「current_person」的方法,但總是因爲CURRENT_USER我使用'users/sign_in'登錄(我想爲我的系統中的其他自定義用戶提供一個通用登錄點)。如果我使用'persons/sign_in'登錄,則不需要此解決方法。因爲某些原因。林真的不知道爲什麼,這是從色器件的GitHub庫原來的方法:

def authenticate_scope! 
    send(:"authenticate_#{resource_name}!", :force => true) 
    self.resource = send(:"current_#{resource_name}") 
end 

我希望這可以幫助別人的未來,問候。

+0

請將您的問題標記爲關閉 – phoet 2014-02-17 18:42:57

0

您定製的最終目標並不清楚,但如果您正在嘗試編輯當前用戶的信息,我建議您查看此鏈接。 Devise - How-To:-Allow-users-to-edit-their-password

這個例子是編輯用戶密碼,但如果你需要更多的字段,你可以添加它沒有問題。但是您應該有一個使用用戶模型的獨立控制器。

+0

嗨豪爾赫,在這種情況下,用戶實際上已登錄,會話處於活動狀態,這是奇怪的事情,當用戶被授權時,它將重定向爲Unathorized。唯一的區別是用戶從UsersController繼承。所以不知道爲什麼它沒有檢測到有效會話 – DevDude 2012-07-11 02:21:32

相關問題