我天真地尝试创建一个插件(我以前从未做过,除了几年前完成过插件教程),以覆盖 DataExplorer 模块中设置的限制,但未能成功。\n\n我的方法对吗,还是完全错误?\n\nhttps://github.com/tkrunning/x-discourse-data-explorer-max/blob/master/plugin.rb\n\n注意:我将 QUERY_RESULT_DEFAULT_LIMIT 设置为 1,以便更容易测试自定义限制是否生效。
我不建议在这里使用插件。
而是提交一个 PR 来添加一个 GlobalSetting(它由环境变量支持)。
5 个赞
在过去的两年里,这似乎对任何人来说都不是一个高优先级的问题,但我今天需要它,并通过在容器内手动编辑文件来解决了它。
一种变通方法是在 app.yml 中添加类似以下内容:
after_bundle_exec:
- replace:
filename: "/var/www/discourse/plugins/discourse-data-explorer/plugin.rb"
from: /QUERY_RESULT_MAX_LIMIT = 10_000/
to: QUERY_RESULT_MAX_LIMIT = 100_000
但这看起来像是一个 PR,它会在 plugin.rb 中添加类似以下内容:
GlobalSetting.add_default(:query_result_max_limit, 10000)
然后将上面的模块更改为类似以下内容:
QUERY_RESULT_MAX_LIMIT = GlobalSetting.query_result_max_limit || 10_000
仅此而已吗?
2 个赞
关闭……
我将停止使用常量,而是到处使用 GlobalSetting.query_result_max_limit,您已经配置了一个默认值,为什么还要配置两次。
但是,如果他们不设置 GlobalSetting,就需要有一个默认值?
您在 plugin.rb 中设置了它。
哦哦哦。我猜 “add_default” 确实会添加一个默认值。 ![]()
哎呀。
所以添加默认的 GlobalSetting 并将所有对旧常量的引用替换为 GlobalSetting。
明白了。
我会看看我能做什么。