我有我的Rails 3設置瓦特/設計,但有輕微的扭曲:我存儲在emails
表中的所有用戶的電子郵件和每個用戶可以擁有多個電子郵件。我遇到了忘記密碼功能的問題。我知道我必須重寫Devise用來查找用戶電子郵件的一些方法,然後發送密碼重置,但我不知道從哪裏開始。任何你可以提供給我的建議是非常感謝。Rails 3的設計忘記密碼W /多封電子郵件
0
A
回答
0
見我answer到了類似的問題。您在Devise::Mailer
創建一個郵件覆蓋headers_for使它發送到多個電子郵件:
def headers_for(action)
#grab the emails somehow
@emails = resource.emails.map{|email| email.column_name}
if action == :reset_password_instructions
headers = {
:subject => translate(devise_mapping, action),
:from => mailer_sender(devise_mapping),
:to => @emails,
:template_path => template_paths
}
else
# otherwise send to the default email--or you can choose just send to all of them regardless of action.
headers = {
:subject => translate(devise_mapping, action),
:from => mailer_sender(devise_mapping),
:to => resource.default_email,
:template_path => template_paths
}
end
if resource.respond_to?(:headers_for)
headers.merge!(resource.headers_for(action))
end
unless headers.key?(:reply_to)
headers[:reply_to] = headers[:from]
end
headers
end
2
設計從模型方法「電子郵件」獲得的電子郵件地址。因此,如果您使用電子郵件模型將所有電子郵件存儲在電子郵件表中,則可以在用戶模型中定義「電子郵件」方法,並從電子郵件表中返回地址。
class User < ActiveRecord::Base
devise :database_authenticatable, :recoverable, :rememberable, :authentication_keys => [ :login ], :reset_password_keys => [ :login ]
has_many :emails
...
def email
emails.map{|record| record.email }
end
end
相關問題
- 1. 發送忘記密碼電子郵件
- 2. 滑軌設計採 - 沒有收到您忘記密碼的電子郵件
- 3. 設計發送忘記密碼指令到任何電子郵件編號
- 4. CakePHP忘記密碼
- 5. devise忘記了密碼電子郵件沒有收到
- 6. 設計忘了密碼
- 7. Symfony2中,FOSUserBundle,忘記密碼的電子郵件不發送
- 8. 更改忘記密碼的電子郵件
- 9. joomla - 忘記密碼頁說無效的電子郵件
- 10. 使用blowfish發送忘記密碼的電子郵件
- 11. Magento不發送忘記的密碼電子郵件
- 12. 忘記密碼發送到Android的註冊電子郵件
- 13. OmniAuth +身份忘記密碼
- 14. 忘記密碼不發送電子郵件
- 15. WSO2身份服務器 - 忘記/重置/電子郵件密碼
- 16. Joomla忘記密碼電子郵件:添加用戶名
- 17. 忘記密碼電子郵件不工作laravel 5
- 18. 忘記密碼+電子郵件確認ASP.NET MVC WebMatrix
- 19. 自定義忘記密碼電子郵件.Meteorjs
- 20. 忘記密碼功能
- 21. 從Sitecore中的電子郵件地址設置忘記的密碼
- 22. struts2忘記密碼
- 23. 郵戳應用與色器件 - 註冊和忘記密碼的電子郵件
- 24. 多封電子郵件
- 25. AngularJS忘記密碼
- 26. 在電子郵件分配隨機密碼忘記密碼在Drupal
- 27. 如何在iPhone中忘記密碼忘記密碼
- 28. bash多封電子郵件
- 29. 忘記密碼的腳本
- 30. 的Rails中的environment.rb 3電子郵件密碼?推git安全?