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 带有designe_token_auth的Rails designe未显示登录表单_Ruby On Rails_Ruby On Rails 4_Devise_Devise Token Auth - Fatal编程技术网

Ruby on rails 带有designe_token_auth的Rails designe未显示登录表单

Ruby on rails 带有designe_token_auth的Rails designe未显示登录表单,ruby-on-rails,ruby-on-rails-4,devise,devise-token-auth,Ruby On Rails,Ruby On Rails 4,Devise,Devise Token Auth,嗨,我正在尝试使用Deviate和Deviate\u token\u auth 最初,我的应用程序是API专用的应用程序。因此,我们使用--api标志生成了应用程序。但之后,我们需要为我们的管理功能添加rails视图。到目前为止,所有控制器都继承自ApplicationController,后者继承自ActionController::API。因此,我创建了一个名为AppController的新控制器,并从ActinController::Base继承了它。我开始从AppController继承

嗨,我正在尝试使用Deviate和Deviate\u token\u auth

最初,我的应用程序是API专用的应用程序。因此,我们使用--api标志生成了应用程序。但之后,我们需要为我们的管理功能添加rails视图。到目前为止,所有控制器都继承自
ApplicationController
,后者继承自
ActionController::API
。因此,我创建了一个名为
AppController
的新控制器,并从
ActinController::Base
继承了它。我开始从
AppController
继承所有新创建的控制器。所有新创建的控制器都位于我的
管理员
命名空间内

这是我的
路线。rb

require 'sidekiq/web'

Rails.application.routes.draw do
  mount Sidekiq::Web => '/sidekiq'

  devise_for :users, as: :admins, controllers: { sessions: 'admins/sessions' }

  mount_devise_token_auth_for 'User', at: 'auth',
    controllers: {
      sessions: 'api/v1/sessions',
      passwords: 'api/v1/passwords'
   }
  namespace :admins do
    # my admin routes
  end

  ###...

end
  class Admins::SessionsController < ::Devise::SessionsController
    def new
      super
    end

    def create
      super
    end
  end
这里我有来自API的请求的路由(由designe_token_auth处理),对于来自API的正常请求,我添加了designe_for:users,as::admins,如上所示

我的
管理员/会话\u控制器.rb

require 'sidekiq/web'

Rails.application.routes.draw do
  mount Sidekiq::Web => '/sidekiq'

  devise_for :users, as: :admins, controllers: { sessions: 'admins/sessions' }

  mount_devise_token_auth_for 'User', at: 'auth',
    controllers: {
      sessions: 'api/v1/sessions',
      passwords: 'api/v1/passwords'
   }
  namespace :admins do
    # my admin routes
  end

  ###...

end
  class Admins::SessionsController < ::Devise::SessionsController
    def new
      super
    end

    def create
      super
    end
  end
问题来了,每当我尝试访问任何页面时,它都会将我重定向到登录页面。但它只显示以下错误

继续之前,您需要登录或注册。

整个页面为空白,未显示任何登录表单。我创建了
sessions/new.html.haml
页面,并将其放在视图中的admins文件夹中

服务器日志

Started GET "/admins/locations/4/bookings/pending" for 172.18.0.1 at 2018-04-26 09:06:34 +0000
Processing by Admins::BookingsController#pending as HTML
  Parameters: {"id"=>"4"}
Completed 401 Unauthorized in 0ms (ActiveRecord: 0.0ms)

如果您需要更多信息,请告诉我

请求将以HTML格式提供,以便设备设置看起来正确。你查过你的路线了吗?它们的设置是否正确?还有,在你的布局中是否有任何东西可以阻止登录表单的出现?嗨@Jiggneshghgohel,我认为路线很好。正如您所指出的,我对我的整个application.html.haml进行了注释,令我惊讶的是,它仍然显示错误“您需要登录或注册才能继续”。当我检查时,这个错误被附加到页面的整个body标记中。我无法解决这个问题。您的应用程序中有多个布局吗?这是Desive在遇到未经授权的请求时呈现的一条闪光消息。在服务器日志中,您应该能够看到为满足请求而呈现的所有视图。你也应该找到布局文件。只有一个布局。没有呈现其他布局或页面。您可以在服务器日志中找到它。