Rails:邮件确认邮件中的RESTful(PUT)URL

时间:2013-01-10 22:50:53

标签: ruby-on-rails-3 rest routes put email-confirmation

从头开始滚动我自己的电子邮件确认。苦苦思索如何为confirmations_controller生成正确的路由。

新用户收到一封电子邮件,其中包含指向“验证”地址的应用链接。

我的想法是应该是PUT操作,因为它会对数据库进行更改。但是,单击电子邮件中的链接将不会提交“放置”操作......或者它会吗?我必须遗漏一些东西,我自己的无知。

#config/routes.rb
...
resources :confirmations, only: [:update]

confirmation_url(user.email_token)生成有效的网址:http://localhost:3000/confirmations/ArELEOejYlqbRXdJPavhrp,但点击该链接时,应用会将其作为“获取”请求收到。

我该如何处理?

1 个答案:

答案 0 :(得分:2)

您的电子邮件的格式是什么?如果是纯文本,那将是一个GET。这本身不是更新激活页面的问题。你也可以打开一个页面(使用GET)并让他们点击一个按钮进行最终提交(并非罕见)。

然而,通过GET更新不会让我对这个特定功能感到困扰。

示例:

# routes.rb
get 'confirmations/:id/confirm' => 'Confirmations#confirm'

# confirmations.rb
class ConfirmationsController < ApplicationController

  def confirm
    # handle the get data here (switch aa flag for the email account)       
   end
end