我添加了一个ActiveSupport::Concern
,它在类方法中声明has_paper_trail
以及一些其他选项。这个问题包含在实际模型中,现在可以通过papertrail
现在我想仅在模拟模型上使用RSpec(数据库中当前不存在)来测试这个问题,并确保版本表被正确填充。
所以我有一个RSpec,我这样做:
describe PapertrailConcern do
before(:all) do
class PaperTrailModel < ActiveRecord::Base
include PapertrailConcern
has_paper_trail
end
end
it 'stores changes to model in paper trail versions' do
# check if PaperTrailModel attribute changes are tracked in versions
end
end
由于PaperTrail模型在数据库中不存在,如果我对它进行任何操作,我会收到此错误:
PG::UndefinedTable: ERROR: relation "paper_trail_models" does not exist
LINE 5: WHERE a.attrelid = '"paper_trail_models"'::re...
^
我还考虑过使用Rspec Mock Model,但我不确定如何在模拟模型上启用papertrail版本控制。在网上找不到任何东西
有没有人遇到过这个问题,或者碰巧知道如何申报测试模型并测试papertrail版本控制是否正常工作?