为什么我的网址中的“http”后结果丢失了?

时间:2013-05-22 14:50:04

标签: ruby-on-rails ruby devise

这是我的重置密码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,但当我在我的生产系统上测试它并收到激活网址电子邮件时,http后链接结果显示没有冒号。

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

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

如何摆脱它?

1 个答案:

答案 0 :(得分:1)

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

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

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