我关注了these instructions,但现在遇到了问题。当我单击电子邮件中的unsubscribe_url时,出现以下错误:
No route matches [GET] "/newsletter_subscriptions/unsubscribe/b25a63f6e525deccd6bcd9e896c3321f"
这是我设置路线的方式:
put 'newsletter_subscriptions/unsubscribe/:unsubscribe_hash' => 'newsletter_subscriptions#unsubscribe', :as => 'unsubscribe'
resources :newsletter_subscriptions
为什么我实际使用[GET]
时会收到put
错误消息?
我的NewsletterSubscriptionsController中有
def unsubscribe
@newsletter_subscription = NewsletterSubscription.find_by_unsubscribe_hash(params[:unsubscribe_hash])
@newsletter_subscription.update_attribute(:active, false)
end
应该在我的控制器中执行unsubscribe
操作的链接是:
<%= link_to 'Unsubscribe', unsubscribe_url(@unsubscribe_hash), method: :put %>
当我使用浏览器开发工具检查链接时,它对我来说是正确的:
<a rel="nofollow" data-method="put" href="http://localhost:3000/newsletter_subscriptions/unsubscribe/b25a63f6e525deccd6bcd9e896c3321f">Unsubscribe</a>
我想知道为什么链接没有达到我控制器的取消订阅动作。如果有人可以朝正确的方向推动我,那就太好了。非常感谢!