【问题标题】:rails 3 method delete clearancerails 3方法删除清除
【发布时间】: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


【解决方案1】:

好的,我找到了答案,在 rails 3 中,即使删除 javascript 也来自外部来源。设置我们的 rails 3 设置的人不包括原型或 jquery,因此没有对此采取任何行动。配置https://github.com/rails/jquery-ujs 应该可以解决问题!

【讨论】:

    猜你喜欢
    • 2012-03-01
    • 2013-03-21
    • 1970-01-01
    • 2013-03-16
    • 1970-01-01
    • 1970-01-01
    • 2014-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多