簡體   English   中英

由devise邀請創建的用戶記錄被刪除

[英]User records created by devise invite gets deleted

我使用的設計在我的應用程序之一invitable模塊。 我具有報告功能,用戶(即發送者)可以與其他用戶(即接收者)以報告的形式共享自己的詳細信息。 發件人需要以表格形式輸入收件人的電子郵件地址。 我們在用戶表中搜索接收者的記錄,如果沒有條目,則使用設計邀請功能為他/她創建一條記錄,並更新share_information表中共享詳細信息的關聯。 接收者會收到一封帶有鏈接的電子郵件,以設置他/她的密碼。 如果接收者使用該鏈接來設置他/她的密碼並聲明他/她的帳戶,那么一切都會很好。 但是,如果用戶不使用鏈接來設置密碼,而是嘗試注冊,則會出現問題。 在這種情況下,將刪除該用戶的較早記錄,並使用新的用戶ID生成一條新記錄。 由於share_information與先前的user_id具有關聯,因此關聯斷開。 我該如何解決問題,為什么要設計刪除用戶? 在devise gem文檔中找不到有關此類事件的信息。 我沒有添加代碼,因為我認為這不是代碼問題。 雖然如果有人需要參考,我可以添加它。 任何幫助或建議,表示贊賞:)

我認為,以某種方式設計用戶作品。 如果邀請了某個用戶,但他沒有申請該帳戶,而是嘗試注冊,則devise會刪除前一個用戶並創建新記錄。 從某些角度來看,這也是有道理的。 無論如何,我必須解決此問題,因此使用黑色密碼生成了受邀用戶。 我在記錄中插入了一個devise友好令牌密碼,然后該devise不會刪除用戶。 它將通知用戶已經存在。

user = User.invite!({:email => user[:email], :first_name => user[:first_name], :last_name => user[:last_name], :phone_number => user[:phone]}, current_user)
user.password = Devise.friendly_token[0,20]
user.save!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM