2012-04-24 60 views
0

我剛剛將devise_invitable添加到應用中,並且設備的工作實現已經就位。Devise_invitable刪除與邀請者相關聯的記錄(用戶has_one配置文件)

邀請過程本身一切正常(電子郵件發送,新用戶可以點擊鏈接和設置密碼等)。

的問題是邀請,一個User,有一個相關的Profile,當邀請擊中「發送邀請」按鈕,將被刪除。

任何人都有任何想法,爲什麼邀請過程會在邀請者上覈對一個關聯的對象?我將嘗試通過devise_invitable代碼來追蹤這一點,但是如果以前有人遇到過這個問題,或者知道設計代碼中的問題可能出在哪裏,這將是一件好事。

User

has_one :profile, :inverse_of => :user, :dependent => :destroy 

Profile

belongs_to :user, :inverse_of => :profile 

回答

0

的錯誤在這裏是因爲 - 默認 - devise_invitable的after_invite_path_for簡單地調用after_sign_in_path_for

但是,它確實傳遞當前用戶爲resource,這將是在一個普通牌子的情況。

如果覆蓋after_sign_in_path_for假設它只會在真正的標誌後調用,就像我那樣,這可能會讓人困惑。

(在我的特殊情況下:我的重寫方法所做的是查找resource的關聯配置文件,如果沒有,它會創建一個新的假設用戶首次登錄。當devise_invitable傳遞一個意外的資源時,這個新的配置文件對象會覆蓋現有的關聯,並且:dependent => :destroy回調會在舊的配置文件對象上觸發。D'oh!)