Filter values for related resources are wrapped in nested arrays?
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 45/100
Hướng nghiên cứu
Bắt đầu tại lib/jsonapi/resource.rb, khoảng dòng 753, và so sánh cách xử lý giá trị bộ lọc với commit 3a691b2. Tái hiện trường hợp bộ lọc tùy chỉnh được mô tả trong issue, kiểm tra xem Resource#verify_resource có gây ra các mảng lồng nhau hay không. Hoàn thành khi các giá trị bộ lọc của tài nguyên liên quan không bị bọc không cần thiết trong khi việc phân tích chuỗi vẫn hoạt động; issue không nêu tên tệp kiểm thử nào.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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
- Ngôn ngữ chính
- Ruby
- Star
- 2.3k
- Fork
- 546
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của JSONAPI-Resources/jsonapi-resources
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 85/100
-
ArgumentError with Rails 8.1 Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 50/100
JSONAPI-Resources/jsonapi-resources#1488 · 1 bình luận ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 42/100
JSONAPI-Resources/jsonapi-resources#1479 · 2 bình luận ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 30/100
JSONAPI-Resources/jsonapi-resources#1477 · 3 bình luận · 1 reaction ·
-
Fields filtering with include Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 45/100
Tất cả issue của JSONAPI-Resources/jsonapi-resources
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
-
Please Drop ruby 3.2 support Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
googleapis/google-api-ruby-client#28001 · 5 reaction ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100