来自rails app的注销没有重定向

时间:2017-02-09 15:01:22

标签: ruby-on-rails devise logout

从我的rails应用程序注销会在日志中生成Completed 204 No Content错误。视图只是冻结,直到手动刷新。

我已将错误跟踪到DELETE请求的处理方式:

Started DELETE "/users/sign_out" for 127.0.0.1 at 2017-02-09 06:55:24 -0800
Processing by Devise::SessionsController#destroy as */*

第二行应该有HTML而不是*/*。有关我需要更改哪些配置以解决此问题的任何提示?

UPDATE 这是一个使用Rails后端和Hyperloop项目的HyperReact模块的测试应用程序。因此视图呈现为React组件。以下是该组件的代码:

module Components
  module Users
    class Show < React::Component::Base
      param :name, type: String
      param :provider, type: String
      param :signed_in_at, type: String
      param :ip, type: String
      param :avatar, type: String

      def render
        div do
          img(src: params.avatar, width: 50, height: 50)
          h1 { "Hello and welcome to your profile page #{params.name}!"}
          h2 { "You are signed in with #{params.provider} since #{params.signed_in_at}." }
          h3 { "Your ip is #{params.ip}." }
          button.btn.btn_default(type: :button) { "Signout!" }.on(:click) do
            HTTP.delete("users/sign_out")
            alert("Signing out")
          end
        end
      end
    end
  end
end

1 个答案:

答案 0 :(得分:0)

对不起,在您的情况下,我的回答没有意义。对于设计,通常还需要定义:method =&gt;“delete”。我知道你这样做但我不确定链接是否正确。 rails中常见的注销链接类似于

City0 28 2 2016 Number of measures: 10
    1    2    3    4    5    6    7    8    9   10
City1 28 2 2016 Number of measures: 15
    1    2    3    4    5    6    7    8    9   10   11   12   13   14   15
City2 1 3 2016 Number of measures: 5
    1    2    3    4    5

如果您使用<%= link_to "Sign out", destroy_user_session_path, :method => :delete %> 代替.destroy会怎样?因为该动作被称为'destroy'并且http方法被删除。不过我很抱歉,我不熟悉您所显示的语法。