ActiveRecord :: StatementInvalid(PG :: UndefinedTable:ERROR:关系“留言簿”不存在

时间:2015-12-07 21:49:59

标签: ruby-on-rails activerecord heroku

当我尝试访问我的网址/留言簿时,我在Papertrail日志中继续收到此错误消息。

此路由在localhost上运行良好,但在Heroku上运行不正常。我的rails命名约定是否已关闭?我认为他们是对的,但我可能会弄错。

我尝试运行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

我的架构

  create_table "guestbooks", force: :cascade do |t|
    t.string   "name"
    t.string   "email"
    t.text     "message"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
  end

我的模特

class Guestbook < ActiveRecord::Base
    paginates_per 5
end

1 个答案:

答案 0 :(得分:0)

问题是我没有任何迁移(只有schema.rb)。如果需要,可以删除所有迁移,但是如果需要,则需要运行rake db:setup以使用schema.rb来设置数据库(rake db:reset只会查找迁移)。