Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 登出Desive不做任何事情_Ruby On Rails_Ruby On Rails 4_Devise_Logout - Fatal编程技术网

Ruby on rails 登出Desive不做任何事情

Ruby on rails 登出Desive不做任何事情,ruby-on-rails,ruby-on-rails-4,devise,logout,Ruby On Rails,Ruby On Rails 4,Devise,Logout,我正在建立一个博客,我的注册工作正常,权限设置完美,但我无法注销该用户 这是我注销时在控制台中看到的内容: Started DELETE "/users/sign_out" for 127.0.0.1 at 2015-07-16 14:41:07 -0500 Processing by Devise::SessionsController#destroy as HTML User Load (0.1ms) SELECT "users".* FROM "users" WHERE "user

我正在建立一个博客,我的注册工作正常,权限设置完美,但我无法注销该用户

这是我注销时在控制台中看到的内容:

Started DELETE "/users/sign_out" for 127.0.0.1 at 2015-07-16 14:41:07 -0500
Processing by Devise::SessionsController#destroy as HTML
  User Load (0.1ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = ?  ORDER BY "users"."id" ASC LIMIT 1  [["id", 1]]
Can't verify CSRF token authenticity
   (0.0ms)  begin transaction
   (0.1ms)  commit transaction
Redirected to http://localhost:3000/
Completed 302 Found in 4ms (ActiveRecord: 0.2ms)
这是我的应用程序erb文件的外观:

<% if user_signed_in? %>            
    <div class="buttons">
        <button class="button"><%= link_to "New Post", new_post_path %></button>
        <button class="button"><%= link_to "Log Out", destroy_user_session_path, :method => :delete %></button>
    </div>
<% end %>
但由于某种原因,当我按下注销按钮时,我不会注销

这是我的routs.rb(添加了“design_for:users do”代码,试图让它工作起来):

哈阿尔普。。。。谢谢


kb

在布局/application.html.erb中添加

<head>
  <%= csrf_meta_tags %>
</head>
而不是这些线

 devise_for :users do
  get '/users/sign_out' => 'devise/sessions#destroy'
 end

问题是请求没有发送
CSRF
令牌。查看服务器日志的第4行:

Can't verify CSRF token authenticity

放在你的页面上应该可以

什么也不做。。它重定向回索引页,但仍保持登录状态..:(你把layouts/application.html.erb放进你的layouts/application.html.erb了吗?我正在努力设计自己,所以如果我可以问:如果你说:方法:“删除”作为你的销毁路径,你的路径不应该指向
design/sessions#destroy
?或者反过来:指向
design/sessions#destroy
,然后
方法:destroy
)代替方法:delete(删除)?我现在无法亲自尝试,但我很好奇。就是这样。谢谢。我的应用程序erb文件中缺少该标记。
devise_for :users
 devise_for :users do
  get '/users/sign_out' => 'devise/sessions#destroy'
 end
Can't verify CSRF token authenticity