[英]Rspec - PG::UndefinedTable: ERROR: relation “application” does not exist
[英]Relation does not exist when running rspec tests
我在group_spec.rb
文件中有這個:
describe Group do
it { should have_many(:users) }
end
這在我的user_spec.rb文件中:
describe User do
it { should belong_to(:group) }
end
當我運行測試時,我得到:
Failure/Error: it { should have_many(:users) }
ActiveRecord::StatementInvalid:
PGError: 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
在我的group.rb文件中,我有:
has_many :users
在我的users.rb文件中,我有:
belongs_to :group
我覺得我錯過了一些顯而易見的事情。 任何幫助,將不勝感激。 謝謝!
約翰
有同樣的問題,並在cuvius的評論中使用了解決方案。 在這里發帖,以便人們不要錯過它!
運行: RAKE_ENV=test rake db:migrate:reset db:test:prepare
設置測試數據庫。
不幸的是rake db:test:prepare在rails 4+中已棄用,所以現在不是最好的解決方案。
我想在你的用戶工廠類中寫為User 。 出現此問題是因為工廠在遷移完成之前加載。
所以要解決這個問題:
從中更改工廠類名稱
factory :user, class: User do
# ...
end
至
factory :user, class: 'User' do
# ...
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.