5
我的Rails 4應用程序具有User和Admin模型。銷燬管理會話導致http獲取請求導軌4
我已經爲通過rails_admin gem創建的Admin模型實現了設計。當我嘗試註銷時,會發生問題:應用程序在意外頁面中重定向,並且日誌顯示GET請求正在進行,而不是DELETE。
研究之後我已經確保註銷環節都有規定如下
在devise.rb登出經由刪除 config.sign_out_via =指定:刪除
的路由進行如下
Mvc::Application.routes.draw do
resources :users
devise_for :admins
mount RailsAdmin::Engine => '/admin', as: 'rails_admin'
root "users#index"
end
我完全可以毫無問題地登錄,但是當註銷請求在瀏覽器中顯示到/ admins/sign_out時,會話仍處於活動狀態,並且該頁面仍顯示管理儀表板。有趣的是,閃存的消息顯示「型號‘S’找不到」,我真的被記錄什麼不解顯示
Started GET "/admins/sign_out" for 127.0.0.1 at 2014-12-03 23:10:50 +0000
Processing by RailsAdmin::MainController#show as HTML
Parameters: {"model_name"=>"s", "id"=>"sign_out"}
[RailsAdmin] Could not load model S, assuming model is non existing. (uninitialized constant S)
Gemfile
source 'https://rubygems.org'
gem 'rails', '4.0.3'
gem 'sqlite3'
gem 'bootstrap-sass', '~> 3.3.1'
gem 'uglifier', '>= 1.3.0'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 1.2'
gem 'simple_form'
gem 'bcrypt-ruby'
gem 'devise'
gem 'rails_admin'
group :assets do
gem 'sass-rails', '~> 4.0.0'
gem 'coffee-rails', '~> 4.0.0'
gem 'uglifier', '>= 1.3.0'
end
group :doc do
gem 'sdoc', require: false
end
group :development do
gem 'better_errors', '~> 2.0.0'
end
我想實現的是,在執行註銷時,管理員會話銷燬,管理員重定向到root_path。我注意到我目前只有應用程序和用戶控制器,並且沒有會話控制器。從我所瞭解的設計引擎應該帶來的會話管理開箱即用。有什麼建議嗎?
的:方法=>:刪除功能來自jquery_ujs。這是否出現在您的項目中?你可能需要添加// = require jquery_ujs到你的application.js文件 – 2015-04-08 07:10:31
RailsAdmin劫持你的Devise路由,然後因爲它不識別'/ admins/sign_out'它將它解釋爲'/ admins /:id ',路由到Show方法,並嘗試匹配一個id爲「sign_out」的模型。你需要找到一種方法來解決RailsAdmin和Devise的問題,讓路由以你需要的方式工作。 – Joseph 2015-04-29 22:05:01
謝謝約瑟夫,這是有道理的,我會繼續挖掘這個方向。 – user2313058 2015-05-21 09:52:59