问题是:简而言之,当我尝试安装一个注销链接到我的应用程序时,它无法工作。这是我能想到的尽可能多的上下文(如果你还想要什么,请戳我)
我从哈姆的角度来看:
=链接到(“注销”,销毁用户会话路径,:方法=>;:删除)
它在视图中生成以下内容:
<;a href=”https://stackoverflow.com/users/sign_out“数据方法=“删除”rel=“nofollow”>;注销</a>;
我验证了在我的config/initializers/designe.rb中,我的设置未注释且正确:
config.sign\u out\u via=:删除
我验证了以下路线:
销毁用户会话删除/用户/注销(:格式){:操作=>;“销毁”,“控制器=>;“设计/会话”}
我在routes.rb中也有一些诡计,我怀疑这与我的问题有关:
为用户设计:控制器=>;{:会话=>;“设计/会话”,:注册=>;“用户”}
资源:用户
最后一点是因为我想在自己的控制器中管理(编辑、创建和删除)用户
我收到的错误消息如下:
ActiveRecord::RecordNotFound in UsersController\show
找不到ID=注销的用户
Rails.root:/home/jaydel/projects/mbsquared projects/Wilson Goldrick
app/controllers/users\u controller.rb:16:in'show'
在我的服务器日志中,我看到以下请求:
在2011-08-04 13:08:51-0500为127.0.0.1开始获取“/用户/注销”
由UsersController处理#显示为HTML
参数:{“id”=>;“注销”}
有人有什么想法吗
解决此问题的正确方法是,按REST方式,将注销链接更改为使用DELETE方法。这是一个非常简单的解决方案,改变了这一点:
链接到“注销”,销毁用户会话路径
为此:
链接到“注销”,销毁用户会话路径:方法=>;:删去