PG::Error: 错误:关系“用户”不存在
Posted
技术标签:
【中文标题】PG::Error: 错误:关系“用户”不存在【英文标题】:PG::Error: ERROR: relation "users" does not exist 【发布时间】:2012-07-16 19:14:32 【问题描述】:很抱歉打扰您,但我对这个错误有很多疑问。 首先这是我的 user_controller rspec 文件
需要'spec/spec_helper'
describe UserController do
it "create new user" do
post "create"
assigns[:users].should_not be_new_record
end
end
这是我的用户控制器
class UserController < ApplicationController
def create
@users = User.new
if @users.save
flash[:notice] = 'new user was successfully created.'
else
render :action => :new
end
end
def new
@user = User.new
end
end
还有我的 routes.rb(我认为问题就在这里,对不起,我是这门语言的新手)
Estaciones::Application.routes.draw do
devise_for :users
root :to => "home#index"
resources :user
end
当我尝试测试我的 user_controller_rspec 时,我得到了这个错误
失败:
1) UserController create new user
Failure/Error: post "create"
ActiveRecord::StatementInvalid:
PG::Error: ERROR: relation "users" does not exist
LINE 4: WHERE a.attrelid = '"users"'::regclass
^
: SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull
FROM pg_attribute a LEFT JOIN pg_attrdef d
ON a.attrelid = d.adrelid AND a.attnum = d.adnum
WHERE a.attrelid = '"users"'::regclass
AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum
# ./app/controllers/user_controller.rb:3:in `new'
# ./app/controllers/user_controller.rb:3:in `create'
# ./spec/controllers/user_controller_spec.rb:6
Finished in 0.01722 seconds
1 example, 1 failure
Failed examples:
rspec ./spec/controllers/user_controller_spec.rb:5 # UserController create new user
我该如何解决...谢谢
【问题讨论】:
您在下面列出了正确答案。你应该接受它 【参考方案1】:运行这个
rake db:migrate
然后这个
rake db:test:prepare
【讨论】:
是的,您需要为 rspec 执行此操作 我将您的问题编辑为看起来像真正的代码...下次在任何代码前添加 4 个空格。 好的,谢谢... /new 带有 :handlers=>[:haml, :builder, :coffee, :erb], :locale=>[:en], :formats=>[:html]。在以下位置搜索:*“#<:rails::viewrendering::emptytemplatepathsetdecorator:0x13728cbd8>” 首先...为什么你有一个 user_controller 而不是 users_controller?二、有没有app/views/user/new.html.erb文件? 在创建新用户资源后推送导致 heroku 部署出现相同错误。带有 heroku 工具带的命令是heroku run rake db:migrate
【参考方案2】:
另一种变体
RAILS_ENV=test rake db:migrate
【讨论】:
以上是关于PG::Error: 错误:关系“用户”不存在的主要内容,如果未能解决你的问题,请参考以下文章
错误:pg_repack 失败并出现错误:错误:列“relhasoids”不存在
Rails ActiveRecord:PG::Error:错误:列引用“created_at”不明确