2014-12-03 16 views
5

Rails My 4 ứng dụng có một tài khoản và và mô hình quản trị.phá hủy phiên quản trị dẫn đến http get yêu cầu ray 4

tôi đã thực hiện devise cho mô hình quản lý được tạo ra thông qua rails_admin đá quý. Vấn đề xảy ra khi tôi cố gắng để logout: ứng dụng chuyển hướng trong một trang bất ngờ và ghi lại cho thấy rằng nhận được yêu cầu tiếp tục được thực hiện, thay vì những DELETE.

nghiên cứu sau tôi đã đảm bảo rằng liên kết logout có phương pháp xóa quy định như sau

  • <% = link_to "Quản trị logout", destroy_admin_session_path,: method =>: xóa%>
  • trong devise.rb các dấu hiệu ra được xác định bằng delete config.sign_out_via =: xóa

    các tuyến đường được như sau

    Mvc::Application.routes.draw do 
        resources :users 
        devise_for :admins 
        mount RailsAdmin::Engine => '/admin', as: 'rails_admin' 
    root "users#index" 
    end 
    

    tôi hoàn toàn có thể đăng nhập mà không vấn đề, nhưng khi yêu cầu đăng xuất được trả lại trong trình duyệt vào/quản trị viên/sign_out phiên vẫn còn hoạt động, và trang web vẫn hiển thị bảng điều khiển quản trị. Điều thú vị là đèn flash chương trình thông báo 'Mẫu 'S' không thể tìm được' và tôi thực sự bối rối bởi những gì nhật ký cho

    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 
    

    Những gì tôi muốn đạt được điều đó khi logout được thực thi, phiên admin Đang bị hủy và quản trị viên được chuyển hướng đến root_path. Tôi lưu ý rằng hiện tại tôi chỉ có ứng dụng và bộ điều khiển người dùng và không có bộ điều khiển phiên. Từ những gì tôi hiểu được công cụ phát triển nên mang lại quản lý phiên ra khỏi hộp. Bất kỳ đề nghị, xin vui lòng?

    +0

    Các: method =>: xóa chức năng bắt nguồn từ jquery_ujs. Có phải là hiện tại trong dự án của bạn? Bạn có thể cần phải thêm // = require jquery_ujs vào tệp application.js của mình –

    +2

    RailsAdmin đang chiếm đoạt tuyến đường của bạn từ Devise, và sau đó vì nó không nhận ra '/ admins/sign_out', nó giải thích nó là'/admins /: id ', định tuyến đến phương thức Show, và cố gắng để phù hợp với một mô hình với một id của" sign_out ". Bạn sẽ cần phải tìm cách để giải quyết RailsAdmin và Devise để có được các tuyến đường hoạt động theo cách bạn cần. – Joseph

    +0

    Cảm ơn Joseph có ý nghĩa, tôi sẽ tiếp tục đào theo hướng này. – user2313058

    Trả lời

    -1

    Đó là dường như bạn không sử dụng các tập tin bố trí ứng dụng. Vì vậy, cố gắng thêm đoạn mã sau vào file html

    <head> 
     
        <title>Training</title> 
     
        <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %> 
     
        <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %> 
     
        <%= csrf_meta_tags %> 
     
    </head>

    Các vấn đề liên quan