2016-03-24 1 views
1

Я с проблемой отслеживания исправления для следующего:Невозможно уничтожить объект сеанса в Heroku

  • Я могу войти в систему/выход из системы в моей среде разработки

  • Я не могу для выхода из системы в моей производственной среде

Я смотрел и пытался решения следующих вопросов:

Я заметил SQL в журналах Heroku говорит Выбор сотрудников, где deleted_at имеет нулевое значение, в противном случае просто видя запрос GET к заседаниям #ново, когда я нажимаю «logout».

Heroku logs --tail

Вот мой код:

sessions_controller.rb

class SessionsController < ApplicationController 
    skip_before_action :require_login, except: [:destroy] 

    def new 
    @employee = Employee.new 
    end 

    def create 
    if @employee = login(params[:email], params[:password]) 
     flash[:success] = "You're logged in!" 
     redirect_back_or_to(root_path) 
    else 
     @employee = Employee.new 
     flash.now[:notice] = "Login failed." 
     render :new 
    end 
    end 

    def destroy 
    logout 
    flash.now[:notice] = "You have successfully logged out." 
    redirect_to(root_path) 
    end 
end 

_nav.html.erb

<li> 
    <% if current_employee.present? %> 
    <% if current_employee.is_admin %> 
     <h5 style="margin-top: 5%;"> 
     Logged in as <strong><em><%= current_employee.email %></em></strong> 
     <%= link_to('Edit Account', edit_account_path(current_employee.account_id), class: "text-normal") %> 
     - or - 
     <%= link_to('Logout', logout_path, options = { method: :delete, class: "text-normal" }) %> 
     </h5> 
    <% elsif current_employee.is_admin == false %> 
     <h5 style="margin-top: 5%;"> 
     Logged in as <strong><em><%= current_employee.email %></em></strong> 
     <%= link_to('Edit Profile', edit_employee_path(current_employee), class: "text-normal") %> 
     - or - 
     <%= link_to('Logout', logout_path, options = { method: :delete, class: 'text-normal' }) %> 
     </h5> 
    <% end %> 
    <% else %> 
    <h5 style="margin-top: 9.5%;"> 
     &nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;&nbsp; 
     <%= link_to('Login', login_path, id: "employee_login", class: "text-normal") %> 
     - or - 
     <%= link_to('Register Today!', new_account_path, id:"admin_registration", class: "text-normal") %> 
    </h5> 
    <% end %>  
</li> 

routes.rb

Rails.application.routes.draw do 
    root to: "static_pages#home" 

    get "static_pages/about", to: "static_pages#about", as: :about 
    get "static_pages/pricing", to: "static_pages#pricing", as: :pricing 
    get "static_pages/contact", to: "static_pages#contact", as: :contact 

    get "sessions", to: "sessions#new", as: :login 
    post "sessions", to: "sessions#create" 
    delete "sessions", to: "sessions#destroy", as: :logout 
    resources :employees 
end 

конфигурация/production.rb (Добавлены эти конфиги)

Rails.application.configure do 
    config.cache_classes = true 
    config.assets.compile = true 
    config.assets.digest = true 
end 

Заранее спасибо за добровольчество нового набора глаз!

ответ

0

Оказывается, я исправил это дело с другой проблемой.

Я удалил config.action_controller.asset_host = "http://www.name_of_site.com" с производства.rb, чтобы мои активы работали на производстве.

Я не уверен, почему, но это также исправило проблему, не имея возможности выйти из системы Heroku.

Я разместил это как ответ с надеждой, что это поможет кому-то в будущем решить подобную проблему.

Смежные вопросы