Tôi đã hợp nhất bộ sưu tập trong Backbone có chứa ảnh và album.Backbone.js: Bộ sưu tập chứa nhiều Mô hình cùng một ID
Để phân biệt chúng, tôi đã thêm một trường type
là photo
hoặc album
. Khi tôi cư trú trong bộ sưu tập, tôi có thể tạo mô hình khác nhau trong phương pháp Collection#model
model: (attrs, options) ->
switch attrs.type
when 'album' then new App.Models.Album(attrs, options)
when 'photo' then new App.Models.Photo(attrs, options)
Bây giờ tôi đã discoverd một lỗi lạ nơi thêm một bức ảnh và một album với cùng một ID (giả sử 2
) kết quả trong một hợp nhất.
Tôi đã theo dõi điều này xuống đến these LOC trong mã nguồn. Dường như nó có thể hoàn tác mà không tạo ra một ngã ba của chính Backbone. Tôi đã thử nó nhưng nó cũng fails 35 tests.
Tôi nghĩ đến 4 cách khác nhau để làm điều này, tôi không biết được trong số họ là một trong những tốt hơn:
- tôi có thể thêm một tiền tố để định danh. Giả sử
photo_2
. Điều này gây ra thay đổi trong chương trình phụ trợ cũng như một số thay đổi trong giao diện người dùng để không truy cập máy chủ tại số/photos/photo_2
- Tôi có thể ngã ba Backbone và change these LOC.
- Tôi có thể tạo hai bộ sưu tập riêng biệt nhưng phải xử lý hợp nhất và sắp xếp trong chế độ xem (ảnh hưởng đến hiệu suất của khách hàng và yêu cầu viết lại phụ trợ)
- Tôi có thể bắt đầu bằng ID ảnh, giả sử
1000000
. Điều này sẽ làm giảm đáng kể xác suất mà người dùng đã tải lên ảnh có ID đã cho cũng đã tạo một album có cùng ID.
Có cách nào lấy mô hình làm đối số ở đây thay vì chỉ là thuộc tính của nó không? –