【发布时间】:2012-10-04 01:14:55
【问题描述】:
我正在将应用程序升级到 rails 3.0,从 rails 2.3,我升级了清除 gem (gem 'clearance', '1.0.0.rc2'),似乎 sign_out 需要方法删除。
我将我的注销更新为:
<%= link_to 'SignOut', sign_out_path, :method => "delete" %><
翻译成:
<a href="/logout" data-method="delete" rel="nofollow">Logout</a>
但是当我查看服务器日志时,它说:
Started GET "/sign_out?timeout=true" for 127.0.0.1 at 2012-10-03 20:28:38 -0400
User Load '44c84e19c75fa993029ca68b4f32019d2a56ab22' LIMIT 1
ActionController::RoutingError (No route matches "/sign_out"):
Rake 路线显示:
sign_out DELETE /sign_out(.:format) {:action=>"destroy", :controller=>"clearance/sessions"}
有什么想法可能是错的吗?
在相关说明中,我在 3 小时后自动注销,这也不起作用,我不知道如何执行方法 = 从 javascript 中删除...?
function logout()
{
location.href='/sign_out?timeout=true';
}
<% if current_user != nil %>
// 3 hours of inactivity log them out
var t= setTimeout("logout()",10800000);
<% end %>
【问题讨论】:
-
乍一看,代码看起来不错,但您的服务器日志清楚地显示它正在执行 GET。因此,这不是一个答案,但为了克服困难,您可以尝试将其从 href 更改为正确的提交类型输入。您的问题可能与 href 无关,而不是您的路线。另外,这是两个问题。您应该删除第二个问题并单独提出。
-
感谢 pdue,我在第二部分中包含了一些按钮建议,如果我只能通过按钮注销,那对我没有好处。我想我可以试试看它是否会删除...
-
这就是我的意思,暂时用一个按钮试试,这样你就可以找出真正的问题。然后阅读此stackoverflow.com/questions/4342083/…
标签: ruby-on-rails-3 rest clearance