我有一个 Rails 应用程序,我在其中添加了Friendly_id,并启用了历史记录模块,并且测试期间的性能直线下降。我说的是绝对最好的跑步时间从 15 分钟到 30 分钟,有时会达到几个小时(不知道需要多长时间,对我来说太长了)。
我的测试创造了很多记录(改天再说吧)。据我所知,有一个与历史记录模块相关的特定查询有时需要长达 1 到 2 秒的时间才能运行。我还不是 100% 确定为什么,但现实是,对于大多数测试,我不需要生成Friendly_id slug,并且除了一个测试之外,我不需要历史记录跟踪。
是否可以暂时关闭Friendly_id slug生成?或者可以关闭历史记录模块吗?
相关代码在这里:https://github.com/pupeno/repeater_world/blob/b83ea68f3bbd4a12c63d726983b70f125e9b6e11/app/models/repeater.rb#L105-L106(全部开源):
include FriendlyId
friendly_id :generate_slug, use: [:slugged, :history]
你可以试试这个:
unless Rails.env.test?
include FriendlyId
friendly_id :generate_slug, use: [:slugged, :history]
end
但是我可能会有副作用。