0

这是我的重置密码 Haml 文件:

%p= link_to 'Changme', edit_password_url(@user, reset_password_token: @user.reset_password_token)

第一个奇怪的是,没有路线edit_password_url,但有路线edit_user_password_url。如果我拿第二个,我会得到类似的结果:

localhost:/users/password/edit.9?reset_password_token=yeePkkvDzaDj3DFFuXBq

请注意.9,网址中有。

我将其更改为edit_password_url,但是当我在生产系统上对其进行测试时,并收到了激活 URL 电子邮件,结果发现链接后面没有冒号http

http//mywebsite.com/users/password/edit?reset_password_token=yeePkkvDzaDj3DFFuXBq

如果第一个奇怪的事情是可以接受的,那么第二个确实应该修复,但我的代码似乎没有错误。

我该如何摆脱它?

4

1 回答 1

1

您的 edit_user_password_url 很可能不应该收到用户 ID。你在用设计吗?如果您这样做,我认为您的代码将起作用:

%p= link_to 'Changme', 
             edit_password_url(reset_password_token: @user.reset_password_token)

确认,运行rake routes |grep password并发布输出

于 2013-05-22T16:12:08.803 回答