错误消息
Rails Server
Processing by Devise::SessionsController#destroy as HTML
User Load (0.5ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 ORDER BY "users"."id" ASC LIMIT 1 [["id", 1]]
Can't verify CSRF token authenticity
(0.4ms) BEGIN
(0.1ms) COMMIT
我彻底阅读this article,我的问题不是重复,因为我研究过了!
我尝试过Cramheads建议: 将此添加到routes.rb
devise_for :users do
get '/users/sign_out' => 'devise/sessions#destroy'
end
我尝试过itkevins建议: 更改了devise.rb的默认设置
config.sign_out_via = :delete
to
config.sign_out_via = :get
导致路由错误:
uninitialized constant UsersController
我尝试了Rickys的建议: 更改了devise.rb
config.sign_out_via_get_becuase_of = :ie
导致方法错误:
undefined method `sign_out_via_get_because_of=' for Devise:Module (NoMethodError)
我尝试了橄榄的建议: 稍微调整了代码
link_to :logout, destroy_user_session_path, :method => :delete
replacing
link_to "Sign out", destroy_user_session_path, :method => :delete
我尝试了Victor Martins的建议: 已经在application.js
//= require jquery
//= require jquery_ujs
我尝试过Rezas建议: 在routes.rb
devise_for :users
devise_scope :user do
get '/users/sign_out' => 'devise/sessions#destroy'
end
我也遵循了DuyKhoas的建议: 我包含了javascript
<%= javascript_include_tag(:application) %>
我已经有了这个,所以这也没用。
所有其他建议都是已经建议的修复的重复。
请帮忙! T.T
您可以查看Github Repo here。
答案 0 :(得分:0)
未定义方法`sign_out_via_get_because_of ='for Devise:Module
(NoMethodError)
设计没有sign_out_via_get_because_of
帮助器。只有sign_out_via
未初始化的常量UsersController
users_controller.rb
下没有app/controllers
,错误也是如此。
#app/controllers/users_controller.rb
class UsersController < ApplicationController
end
对于“sign_out_via”我应该输入什么?
取决于method
中的link_to
参数。如果是:method => :delete
,则为config.sign_out_via = :delete
其他config.sign_out_via = :get
。
按照惯例,我应该运行Rails g controller User或Rails g 控制器用户?
您应该运行rails g controller Users