Ruby on rails 在rspec特性测试中使用书面记录不存在任何人

Ruby on rails 在rspec特性测试中使用书面记录不存在任何人,ruby-on-rails,rspec,paper-trail-gem,Ruby On Rails,Rspec,Paper Trail Gem,使用书面记录,我在我的应用程序中建立了一个变更跟踪元素。在生产中效果很好。一个方面是,它使用“whodunnit”字段来提取用户名,以显示做出更改的用户 我查看了文档()并看到了关于rspec和whodunnit的符号,但我不认为引用意味着“whodunnit”字段不可用,只是在测试之间它将为零 详情: 我正在使用rspec的测试助手,并且我有rspec特性测试设置 "..., versioning: true do" 此外,在运行测试的调试过程中,我可以看到事件/更改的所有其他字段都存在并保

使用书面记录,我在我的应用程序中建立了一个变更跟踪元素。在生产中效果很好。一个方面是,它使用“whodunnit”字段来提取用户名,以显示做出更改的用户

我查看了文档()并看到了关于rspec和whodunnit的符号,但我不认为引用意味着“whodunnit”字段不可用,只是在测试之间它将为零

详情: 我正在使用rspec的测试助手,并且我有rspec特性测试设置

"..., versioning: true do"
此外,在运行测试的调试过程中,我可以看到事件/更改的所有其他字段都存在并保存在数据库中,只有whodunnit没有保存。有趣的是,我只是在考试中遇到了问题;在生产中没有问题,在那里工作正常,只是在测试中不起作用。当然,我有

before_action :set_paper_trail_whodunnit
设置(在我的应用程序控制器中,不是特定的控制器,但我移动它只是为了看看它是否有区别,而且毫不奇怪,它没有)

编辑: 我应该提到,我检查以确认在测试运行时测试数据库中有一列“whodunnit”。此外,在控制器中还有一个当前用户可用的方法(如预期的那样,否则它将无法在生产中工作)。

我从一个

除非在运行查询之前运行控制器和/或集成规范,否则很可能未填充
whodunnit

最后,我用

PaperTrail.controller\u info[:whodunnit]=user.id


这种感觉有点违背了目的。但是我在单元规范和功能规范中运行这个,所以我认为这是唯一的方法。

也许你在测试环境中关闭了书面记录,然后忘记了关闭了它?谢谢你,杰瑞德。今天晚些时候我将再次检查,但测试的其余部分(需要纸质记录数据)显示了更改的数据并运行良好。只有whodunnit数据丢失。