PG ::错误:错误:关系“用户”不存在

时间:2012-07-17 19:42:07

标签: ruby-on-rails testing rspec pg

抱歉打扰了你,但我对这个错误有很多疑问。 首先这是我的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

这是我的UserController

 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

我如何解决它...谢谢

2 个答案:

答案 0 :(得分:45)

运行此

 rake db:migrate

然后这个

 rake db:test:prepare

答案 1 :(得分:3)

替代变体

  

RAILS_ENV = test rake db:migrate