Ruby on rails 3 通过Rails电子邮件中的链接调用更新操作

Ruby on rails 3 通过Rails电子邮件中的链接调用更新操作,ruby-on-rails-3,Ruby On Rails 3,我想激活通过调用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 %&

我想激活通过调用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>
但是,当我在电子邮件中单击此链接时,会出现以下错误:

No route matches [GET] "/activations/icrvr5uNahnA5fpVjVTDEw"
救命啊,

迈克

更新

根据下面的答案,我将路线改为:

activations_validate GET  /activations/validate(.:format)  activations#validate

但是现在,当路由中没有:id时,我应该如何从URL中获取参数[:id]。

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

谢谢@theButler,但我的rake路由看起来是这样的:activations\u validate GET/activations/validate(:format)activations#validate我应该如何获取参数[:id]从这一点出发?我知道如果路由看起来是这样的话该如何抓取它:edit_user GET/users/:id/edit(:format)users#edit像这样:
match'activations/:id'=>'activations#validate'
,但记住要把它放在任何其他激活路由之后
activations_validate GET  /activations/validate(.:format)  activations#validate