Ruby on rails ActiveRecord::语句无效(PG::UndefinedTable:错误:关系“guestbooks”不存在
当我尝试访问我的URL/留言簿时,我会在我的书面记录日志中继续收到此错误消息 这条路线在本地主机上运行得很好,但在Heroku上不行。我的rails命名约定有问题吗?我想他们是对的,但我可能弄错了Ruby on rails ActiveRecord::语句无效(PG::UndefinedTable:错误:关系“guestbooks”不存在,ruby-on-rails,activerecord,heroku,Ruby On Rails,Activerecord,Heroku,当我尝试访问我的URL/留言簿时,我会在我的书面记录日志中继续收到此错误消息 这条路线在本地主机上运行得很好,但在Heroku上不行。我的rails命名约定有问题吗?我想他们是对的,但我可能弄错了 我试着运行rake db:rest,然后试着运行rake db:drop db:create db:migrate,这表明我的迁移文件中有错误,所以我删除了它们,然后再次运行命令,不再收到来自PG的迁移文件错误 我尝试提交我的更改并运行heroku run rake db:migrate,但我的错误仍
我试着运行
rake db:rest
,然后试着运行rake db:drop db:create db:migrate
,这表明我的迁移文件中有错误,所以我删除了它们,然后再次运行命令,不再收到来自PG的迁移文件错误
我尝试提交我的更改并运行heroku run rake db:migrate
,但我的错误仍然存在。下面是我的MVC和路由
class GuestbooksController < ApplicationController
before_action :load_page
def index
@guestbook = Guestbook.new
end
def create
@guestbook = Guestbook.new(guestbook_params)
if @guestbook.save
flash.now[:notice] = "Thanks for taking the time to write us! We greatly appreciate it!"
render :index
else
flash.now[:notice] = "Your message failed to post, please try again"
render :index
end
end
private
def load_page
@guestbooks = Guestbook.page(params[:page])
end
def guestbook_params
params.require(:guestbook).permit(:name, :email, :message)
end
end
我的模型
class Guestbook < ActiveRecord::Base
paginates_per 5
end
class留言簿
问题是我没有任何迁移(只有schema.rb)。如果需要,您可以删除所有迁移,但如果需要,您需要运行rake db:setup以使用schema.rb设置数据库(rake db:reset将只查找迁移).rake db:drop db:create db:migrate在Heroku上不起作用,你需要先执行Heroku pg:reset
,然后再执行Heroku运行rake db:migrate
我正在查看,但找不到确切的语法。我必须指定一个特定的数据库。它是Heroku pg:reset,:guestbooks吗?@johnbynonnoHeroku pg:reset数据库
@JohnBeynon谢谢你的回答,结果证明这并没有解决我的问题。运行了这个,然后迁移任务仍然存在。
class Guestbook < ActiveRecord::Base
paginates_per 5
end