0

我想通过在我的 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] ?

4

1 回答 1

0

在您的路由文件中,尝试将其设置为 GET 而不是 PUT,并将方法更改为类似activations#validate(显然也更改您的控制器),然后在控制器的 validate 方法中,检查params[:id]您的验证逻辑,如果成功,更新(激活)用户并重新路由到任何地方。

于 2012-10-10T05:09:55.047 回答