批量屏蔽来自 /latest 的主题未按预期工作

大家好,

我目前正在使用 Suppress category from latest 插件来隐藏 /latest 页面上的主题,但仍能在各自的类别中显示它们。我大约有 200 个类别希望从 /latest 中隐藏,只有大约 10 个类别应该在主页上显示主题。

为实现此目的,我尝试在 Rails 控制台中运行以下代码:

Category.all.each do |cat|
  cat.custom_fields["suppress_latest"] = true
  cat.save_custom_fields(true)
end

该命令似乎执行没有错误(它甚至返回 {"suppress_latest"=>"t"}),但当我检查 /latest 页面时,这些类别的主题仍然可见。

以下是我已采取的步骤:

  • 我运行了 ./launcher rebuild app./launcher restart app
  • 我通过 Rails 控制台确认受影响类别已将自定义字段设置为 "t"
  • 我也尝试过清除缓存,但似乎没有任何改变

似乎即使设置了自定义字段,这些类别的主题仍然显示在主页上。有人遇到过此问题或找到有效批量隐藏 /latest 主题的方法吗?是否存在与子类别已知的兼容性问题,或者插件应该使用不同的键/值进行隐藏?

任何指导或替代方法都将不胜感激!

谢谢!

快速查看核心代码未找到 suppress_latest

也许您想要的是“默认静音所有类别”站点设置?

1 个赞

插件作者在此!

应该是

cat.custom_fields[:suppress_category_from_latest] = true

但是……这些值也缓存在一个类变量中。最简单的处理方法是也对分类进行 save!(参见 此处

所以这样可行

Category.all.each do |cat|
  cat.custom_fields[:suppress_category_from_latest] = true
  cat.save_custom_fields(true)
  cat.save!
end
4 个赞

您好 RGJ,

非常感谢您的指导。我在 Rails 控制台中运行了以下命令:

Category.all.each do |cat|
  cat.custom_fields[:suppress_category_from_latest] = true
  cat.save_custom_fields(true)
  cat.save!
end

一切都完美运行!我的分类现在已成功从 /latest 页面隐藏。我非常感谢您的帮助。

此致,

3 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.