2012-10-04 71 views
1

我正在从rails 2.3升级应用程序到rails 3.0,我升级了清除宝石(gem'clearance','1.0.0.rc2'),似乎sign_out需要被方法删除。rails 3方法删除清除

我更新了我的标志了出来:

<%= 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"): 

耙路线显示:

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 %> 
+0

代码对我来说看起来很好,但您的服务器日志清楚地显示它正在执行GET。所以,这不是一个答案,但为了克服这个问题,你可以尝试将它从一个href改为适当的提交类型输入。你的问题可能与href,而不是你的路线。另外,这是两个问题。你应该删除第二个问题并单独提出。 – pduey

+0

感谢pdue,我包括第二部分,以排除按钮建议,如果我只能通过按钮注销,那对我来说没有好处。我想我可以尝试一下,看看它是否删除... – Joelio

+0

这就是我的意思,暂时用一个按钮来尝试它,这样你就可以隔离真正的问题。然后阅读这个http://stackoverflow.com/questions/4342083/rails-3-link-to-method-delete-not-working – pduey

回答

0

好的,我找到了答案,在rails 3中,甚至删除javascript来自外部源。设置我们的rails 3设置的人不包括原型或jquery,因此没有任何事情可以采取行动。配置https://github.com/rails/jquery-ujs应该做的伎俩!