我正在尝试使用操作邮件向我的 Rails 应用程序添加密码重置功能。除了生成的重置密码链接不正确外,一切似乎都运行良好。
以下是文件:
File user_mailer.rb
:
class UserMailer < ActionMailer::Base
default from: "from@example.com"
def password_reset(user)
@user = user #make the user available in mailer template
mail :to => user.email, :subject => "Password Reset"
end
end
File password_reset.text.erb
包含以下链接:
<%= edit_password_resets_url(@user.password_reset_token) %>
当我获得电子邮件和令牌值时,我可以看到用户变量已正确传递。但是,邮件程序中生成的 URL 如下所示:
http://localhost:3000/password_reset/edit.jo_jYhkjsdjskjdskYHJSDA
但是,期望值就像
http://localhost:3000/password_resets/jo_jYhkjsdjskjdskYHJSDA/edit
有以下内容routes.rb
resource :password_resets
此外,rake 路线显示以下内容:
edit_password_resets GET /password_resets(.:format) password_resets#edit
可能出了什么问题?
注意:我正在关注 Ryan bates 的 rails casts #274