【发布时间】:2014-01-29 04:21:05
【问题描述】:
我只有在手动将 URL 输入浏览器时才会收到此错误。如果我点击我网站上的“退出”链接,它会很好地注销用户。这是我的“退出”链接:
<%= link_to "Sign out", destroy_user_session_path, method: :delete %>
效果很好。如果用户在地址栏中输入地址,我如何才能使退出功能正常工作?我知道这与 GET 和 DELETE 请求有关。它使用带有链接的 DELETE 请求,但在手动输入 URL 时使用 GET 请求。我该如何解决这个问题?
【问题讨论】:
-
在 RESTful 架构中,DELETE 请求意味着我们实际上是在请求从服务器上删除一些资源。在从应用程序中注销时,我们实际上是在请求从服务器销毁/删除会话。因此,遵循 RESTful 架构,我们不能让用户通过输入 URL 来退出。这是一种不好的做法。
-
那么大多数使用设计防止用户输入 url 并显示错误页面的 Rails 应用程序是做什么的?
-
我们不需要定义任何东西。如果方法与路由不匹配,rails 本身将进入 404 状态。
标签: ruby-on-rails devise