Filter values for related resources are wrapped in nested arrays?
还没有人认领这个 Issue。
评估
调研方向
从 lib/jsonapi/resource.rb 第 753 行附近开始,将过滤值的处理与提交 3a691b2 进行比较。复现 issue 中描述的自定义过滤器场景,检查 Resource#verify_resource 是否会导致嵌套数组。完成的标准是:相关资源的过滤值不会被不必要地包装,同时字符串解析仍然正常工作;issue 中没有指定测试文件。
由索引模型根据 Issue 内容生成。
描述
I'm a little confused as to what's going on, but upgrading from 0.8.3 to 0.9 broke some filters I have in place. e.g.:
VERIFY_RADIUS_FILTER = ->(value, context) {
return NoLimit.new unless context[:current_location].present?
value
}
FILTER_RADIUS_FROM_LOCATION = ->(records, value, options) {
location = options.dig(:context, :current_location)
limit = Array(value).first
return records unless location.present? && limit.present?
records.near(location, Float(limit))
}
filter :radius, default: 100.0,
verify: VERIFY_RADIUS_FILTER,
apply: FILTER_RADIUS_FROM_LOCATION
I think this commit my be the culprit? https://github.com/cerebris/jsonapi-resources/commit/3a691b29adb3e7aff0743ef59e44556bedb260c9
From what I can tell, this results in Resource#verify_resource being called twice. For a custom filter, at least (which is what I've got), that means the raw value gets doubly-nested in an array: https://github.com/cerebris/jsonapi-resources/blob/19f4d7b59f92b05fa28c4f925391cf5998123308/lib/jsonapi/resource.rb#L753
Instead I wonder if that line should be something like:
filter_values += raw.is_a?(String) ? CSV.parse_line(raw) : Array(raw)
To make sure we don't wrap an array?
/cc @hidde-jan
- 主要语言
- Ruby
- 星标
- 2.3k
- 派生
- 546
- PR 合并指标
- 30 天内没有已合并 PR
贡献指南
这个仓库没有索引到贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
JSONAPI-Resources/jsonapi-resources 的其他 Issue
-
难度 1/5 1 小时以内 新手友好度 85/100
-
难度 3/5 1-2 天 新手友好度 50/100
JSONAPI-Resources/jsonapi-resources#1488 · 1 条评论 ·
-
难度 4/5 3-5 天 新手友好度 42/100
JSONAPI-Resources/jsonapi-resources#1479 · 2 条评论 ·
-
难度 4/5 3-5 天 新手友好度 30/100
JSONAPI-Resources/jsonapi-resources#1477 · 3 条评论 · 1 个 reaction ·
-
难度 3/5 1-2 天 新手友好度 45/100
查看 JSONAPI-Resources/jsonapi-resources 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 65/100
-
难度 2/5 1-3 小时 新手友好度 75/100
-
难度 2/5 1-3 小时 新手友好度 70/100
googleapis/google-api-ruby-client#28001 · 5 个 reaction ·
-
难度 2/5 1-3 小时 新手友好度 75/100
-
难度 2/5 1-3 小时 新手友好度 70/100