我想通过调用ActivationController中的更新操作来激活注册的用户。
在我的activation.html.erb
文件中,我有这个:
<html>
<body>
To activate your account, please click the link below:
<%= link_to "Click Here", activation_url(@user.activation_token), method: :put %>
</body>
</html>
rake routes
看起来像这样:
activation PUT /activations/:id(.:format) activations#update
但是当我在电子邮件中点击此链接时,我收到此错误:
No route matches [GET] "/activations/icrvr5uNahnA5fpVjVTDEw"
帮助,
麦克
更新
根据下面的答案,我改变了我的路线:
activations_validate GET /activations/validate(.:format) activations#validate
但是现在,如果路线中没有:id,我该如何从URL中获取params [:id]?
答案 0 :(得分:0)
在您的路线文件中,尝试将其设为GET而不是PUT,并将方法更改为activations#validate
(显然也在控制器中更改),然后在控制器的validate方法中,检查{ {1}}针对您的验证逻辑,如果成功,则更新(激活)用户并重新路由到任何地方。