ruby-on-rails – 使用Mongoid时在测试中提高质量赋值的异常

ruby-on-rails – 使用Mongoid时在测试中提高质量赋值的异常,第1张

概述使用ActiveRecord时,可以通过将此行放在config / environments / test.rb中来配置它以在测试中引发质量分配的异常: config.active_record.mass_assignment_sanitizer =:strict 有没有办法用Mongoid完成同样的事情? 通过阅读代码,Mongoid使用ActiveModel进行质量分配保护.这与Rails完全 使用ActiveRecord时,可以通过将此行放在config / environments / test.rb中来配置它以在测试中引发质量分配的异常:

config.active_record.mass_assignment_sanitizer =:strict

有没有办法用MongoID完成同样的事情?

解决方法 通过阅读代码,MongoID使用ActiveModel进行质量分配保护.这与Rails完全相同,但似乎配置并没有完全连接起来.

从实现我可以收集这是发生的事情:

attributes.rb assign_attributes调用到processing.rb.

processing.rb然后调用active_model sanitizer,其中呼叫在sanitize结束.
应该引发异常的方法是:process_removed_attributes被strict sanitizer class或logging sanitizer覆盖.

您现在只需要了解如何配置MongoID以在这种情况下使用strict_sanitizer.我正在进一步调查,但它似乎严格来说是一个active_model配置,与MongoID无关.

什么有效但在你的情况下不理想是在模型上分配mass_assignment_sanitizer:

Modelname.mass_assignment_sanitizer = :strict

但这只会改变这一模型.
我在mongoid config中找不到任何消毒剂参考.

总结

以上是内存溢出为你收集整理的ruby-on-rails – 使用Mongoid时在测试中提高质量赋值的异常全部内容,希望文章能够帮你解决ruby-on-rails – 使用Mongoid时在测试中提高质量赋值的异常所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1279077.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存