"Create" 无法在 heroku 上使用 ruby 偏执狂
"Create" not working with ruby paranoia on heroku
我已经在一个模型 ("Stays") 上实现了偏执狂,它正在开发中,但没有在 heroku 上生产。在 heroku 站点上,我可以看到一个(应该是空的)索引页面,但是当我转到 /stays/new 时,我得到一个错误页面。
查看日志,我发现:
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
在 gemfile 中:
gem 'paranoia', '~> 2.2'
在app/models/stay.rb:
class Stay < ApplicationRecord
belongs_to :user
acts_as_paranoid
end
自从推送到 heroku 以来,我已经 运行 heroku run rake db:migrate
,但没有运气。知道为什么这适用于本地开发,但不适用于 heroku 生产吗?
Post 迁移,您需要重新启动 heroku,因为应用程序 运行ning 处于生产模式。 Heroku 在任何迁移 运行 之前缓存数据库模式。因此,重新启动应用程序将重新缓存架构。
只是 运行,您的问题应该不会持续存在。
heroku restart
我已经在一个模型 ("Stays") 上实现了偏执狂,它正在开发中,但没有在 heroku 上生产。在 heroku 站点上,我可以看到一个(应该是空的)索引页面,但是当我转到 /stays/new 时,我得到一个错误页面。
查看日志,我发现:
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
在 gemfile 中:
gem 'paranoia', '~> 2.2'
在app/models/stay.rb:
class Stay < ApplicationRecord
belongs_to :user
acts_as_paranoid
end
自从推送到 heroku 以来,我已经 运行 heroku run rake db:migrate
,但没有运气。知道为什么这适用于本地开发,但不适用于 heroku 生产吗?
Post 迁移,您需要重新启动 heroku,因为应用程序 运行ning 处于生产模式。 Heroku 在任何迁移 运行 之前缓存数据库模式。因此,重新启动应用程序将重新缓存架构。
只是 运行,您的问题应该不会持续存在。
heroku restart