当我退出Devise时,我的用户被销毁了

时间:2012-03-12 02:35:57

标签: ruby-on-rails devise logout

我在这里不知所措。我有三个Devise范围(豆类,蔬菜和水果)

我有一个用户表,豆类,水果和蔬菜表引用它:

  • 用户有一个豆类,水果和蔬菜
  • 豆类,水果和蔬菜属于用户

我可以使用3个范围中的2个注销,但是有一个范围(水果)我在那里注销并且我的用户从数据库中删除。我退出后收到此错误消息。

  

翻译缺失:en.devise.sessions.fruit.destroyed

我正在使用以下代码注销:

    link_to "Logout", destroy_fruit_session_path, :method => "delete"

以下是日志中的输出:

  

在2012-03-11 21:43:58 -0400开始为127.0.0.1删除“/ fruits / logout”     水果加工:: SessionsController#destroy as HTML     参数:{“authenticity_token”=>“2MwwcPF4NTWUUXDXiAh + v0B85CPNeUrW + R7S78FWo9E =”}     用户负载(0.8ms)SELECT“users”。* FROM“users”WHERE“users”。“id”= 335 LIMIT 1      (0.2ms)BEGIN     SQL(0.6ms)DELETE FROM“users”WHERE“users”。“id”= $ 1 [[“id”,335]]      (1.3ms)COMMIT   重定向到http://localhost:3000/fruit/login

唉!我觉得太蠢了!我想出了自己的问题而且非常尴尬......

我没有使用Devises的SessionController覆盖我的SessionsController,而是使用注册控制器意外覆盖它,注册控制器会在销毁时删除用户。

我有

    #incorrect!!!
    class Fruits::SessionsController < Devise::RegistrationsController

而不是

    #correct...
    class Fruits::SessionsController < Devise::SessionsController   

1 个答案:

答案 0 :(得分:0)

尝试

:method => :delete

而不是

:method => "delete"