【发布时间】:2017-06-15 02:37:11
【问题描述】:
我正在创建一个小型 Rails 应用程序,我遇到了一个我认为是在我的数据库后端的问题,但我不知道如何解决它。最终发生的事情是,如果我尝试访问我的 new 网址,我会收到一条错误消息,指出 PG::UndefinedTable: ERROR: relation "caves" does not exist LINE 8: WHERE a.attrelid = '"caves"'::regclass
我要做的就是创建一个新的cafe 我去localhost:3000/cafes/new 但由于一些非常烦人的原因,洞穴不知何故混入其中,我不知道如何解决这个问题。
我的控制器基本上在下面。 (此时我的控制器中的其余项目都是空方法)
def new
@cafe = Cafe.new
end
def create
@cafe = Cafe.new(cafe_params)
end
private
def cafe_params
params.require(:name, :description)
end
我的架构表是
enable_extension "plpgsql"
create_table "cafes", force: :cascade do |t|
t.string "name"
t.text "description"
end
create_table "users", force: :cascade do |t|
t.string "first_name"
t.string "last_name"
t.string "email"
t.integer "age"
end
我现在有两个空模型,一个叫user.rb,另一个叫cafe.rb
这是我真正感到困惑的地方,因为我的模型中没有洞穴关系。
class Cafe < ApplicationRecord
end
这就是我在哪里。有人知道我能用这个做什么吗?我在想某处可能有一个重复的数据库,它需要被销毁。我已经尝试了 rake db:drop + rake db:create + rake db:migrate 路线,但没有运气。我知道有一种方法可以通过直接 psql 打开我的数据库,我认为这可能是真正调试这个问题的方法。 (我看过一次,但是不记得怎么做了,更别说只知道活动记录,不知道sql)
有人知道这里发生了什么吗?或者有谁知道如何进入 psql 以及如何找到类似的东西?
我真的很感激。
【问题讨论】:
-
错误说关系“caves”而你的模型是“cafe”,有拼写错误吗?
-
你能展示你的模型吗?
-
我认为可能有一些拼写相关的东西,但我有什么,我没有看到它。
标签: mysql ruby-on-rails ruby ruby-on-rails-3