检查
问题
编辑抽奖项目时可以正常修改标签,保存也会提示成功,但刷新页面后标签还是旧值。
我测试时把项目名称和标签放在同一次请求里更新。名称成功写入数据库,只有标签没变,所以不是整次更新失败。
复现步骤
- 启动最新版本的 cdk 前后端、MySQL 和 Redis。
- 通过 linux.do OAuth 登录。
- 准备一个抽奖项目,标签设为
old-a、old-b。
- 在“我的项目”里编辑它,同时修改名称,并把标签换成
new-x、new-y。
- 点击“更新项目”。
- 刷新页面,再查一次 MySQL。
页面会提示“项目更新成功”。名称是新的,标签仍然是 old-a、old-b。
原因
internal/apps/project/routers.go 的抽奖分支在 Save 后直接返回,没有执行 RefreshTags。非抽奖分支会更新标签。
前端对抽奖项目仍然显示标签编辑器,也会提交 project_tags,所以这个行为看起来不是有意限制。
检查
master(ad4a9f35919ad3f9cacf6b1e7776dc87cab3dcbe)复现。问题
编辑抽奖项目时可以正常修改标签,保存也会提示成功,但刷新页面后标签还是旧值。
我测试时把项目名称和标签放在同一次请求里更新。名称成功写入数据库,只有标签没变,所以不是整次更新失败。
复现步骤
old-a、old-b。new-x、new-y。页面会提示“项目更新成功”。名称是新的,标签仍然是
old-a、old-b。原因
internal/apps/project/routers.go的抽奖分支在Save后直接返回,没有执行RefreshTags。非抽奖分支会更新标签。前端对抽奖项目仍然显示标签编辑器,也会提交
project_tags,所以这个行为看起来不是有意限制。