2012-11-19 48 views
0

我正在使用設計進行身份驗證的rails 3.2應用程序。設計和單獨的用戶表

對於與應用程序無關的目標(主要是統計數據),我需要創建一個單獨的用戶表(我們稱之爲alt_users),它只包含用戶表的一些字段(名稱,電子郵件和其他字段)但沒有密碼摘要和其他敏感信息。此外,如果用戶修改其帳戶或將其刪除,則不必修改此記錄。

我的想法是,當用戶註冊時,在devise開始工作之前,一些選定的字段被插入到alt_users表中。

什麼是正確的方式來覆蓋設計行爲,以實現這一目標?

回答

2

你可以做什麼是覆蓋設計的RegistrationsController以下列方式:

在你的routes.rb:

devise_for :users, :controllers => {:registrations => "registrations"} 

然後創建文件app /控制器/ registrations_controller.rb:

# app/controllers/registrations_controller.rb 
class RegistrationsController < Devise::RegistrationsController 

    def create 
    # add your data to alt_users here 
    super 
    end 

end 

在一個側面說明,如果你可以避免重寫Devise的控制器,它將是最好的。 嘗試考慮其他選項,例如用戶模型中的before_create回調。

+0

是的,這應該工作。正如你所說,我也會考慮創建一個之前的過濾器。謝謝 – TopperH