设计:为什么我的注销链接不起作用?

问题是:简而言之,当我尝试安装一个注销链接到我的应用程序时,它无法工作。这是我能想到的尽可能多的上下文(如果你还想要什么,请戳我)

我从哈姆的角度来看:

=链接到(“注销”,销毁用户会话路径,:方法=>:删除)

它在视图中生成以下内容:

<a href=”https://stackoverflow.com/users/sign_out“数据方法=“删除”rel=“nofollow”>注销&lt/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方法。这是一个非常简单的解决方案,改变了这一点:

链接到“注销”,销毁用户会话路径

为此:

链接到“注销”,销毁用户会话路径:方法=>:删去

发表评论