"Твори" не работает с рубиновой паранойей на героку

Я реализовал паранойю на модели ("Пребывание"), которая работает в разработке, но не в производстве на герою. На сайте heroku я вижу (как ожидается, пустую) страницу индекса, но когда я захожу на / остается / новый, я получаю страницу с ошибкой.

Проверяя логи, я нахожу это:

    2017-01-18T03:31:49.546164+00:00 app[web.1]: [d5ce2502-2cb9-4b1d-9888-f2990881bbb4] Completed 500 Internal Server Error in 16ms (ActiveRecord: 4.3ms)
    2017-01-18T03:31:49.547115+00:00 app[web.1]: [d5ce2502-2cb9-4b1d-9888-f2990881bbb4] ActiveModel::UnknownAttributeError (unknown attribute 'deleted_at' for Stay.):
    2017-01-18T03:31:49.547194+00:00 app[web.1]: [d5ce2502-2cb9-4b1d-9888-f2990881bbb4] app/controllers/stays_controller.rb:14:in `new'

В app/controllers/stays_controller.rb приведены первые 15 строк.

    class StaysController < ApplicationController
      before_action :set_stay, only: [:show, :edit, :update, :destroy]
      before_action :correct_user, only: [:edit, :update, :destroy]
      before_action :authenticate_user!, except: [:index, :show]

      def index
        @stays = Stay.all.order("created_at DESC")
      end

      def show
      end

      def new
        @stay = current_user.stays.build #Stay.new
      end

В гемфайле:

gem 'paranoia', '~> 2.2'

В приложении /models/stay.rb:

class Stay < ApplicationRecord
  belongs_to :user
  acts_as_paranoid
end

Я бегал heroku run rake db:migrate с момента толкания к героку, но без везения. Есть идеи, почему это работает локально для разработки, а не на герою для производства?

1 ответ

Решение

После перенастройки необходимо перезагрузить героку, так как приложение работает в производственном режиме. Heroku кэширует схему БД перед выполнением любых миграций. Таким образом, перезапуск приложения приведет к повторной загрузке схемы.

Просто беги и твоя проблема не должна сохраняться.

heroku restart
Другие вопросы по тегам