2013-02-12 32 views
7

Hiện tại tôi đang nhấn vào một bức tường với Dữ liệu Ember đang tải một số dữ liệu có thể tồn tại hoặc có thể không. Nếu một bản ghi không tồn tại, ứng dụng web sẽ tạo ra nó.Cách triển khai "tìm hoặc tạo" với Dữ liệu Ember

Trường hợp sử dụng đơn giản: ghi lại khoảng không quảng cáo. Nếu một bài viết không tồn tại, một bài viết mới sẽ được thêm vào. Nếu nó tồn tại, thì nhân viên có thể ngay lập tức sử dụng thông tin.

Tôi nghi ngờ phương thức find() là nguồn gốc của vấn đề này. Nó không thể xử lý lỗi 404 không tìm thấy và truyền kết quả trống không hoạt động.

Có lẽ tôi đang xem cái gì đó tầm thường, vì 'tìm hoặc tạo' là một mẫu khá thường xuyên. Xin vui lòng giúp ...

+0

tôi bị mắc kẹt ở đây quá. Tôi đang cố gắng để làm điều này bên trong một tuyến đường, có vẻ như một khi findRecord không thành công tôi bị mắc kẹt trong .catch() không có cách nào để tạo ra một bản ghi hoặc trả lại nó. @ peter, bất kỳ ý tưởng nào? – Matthew

Trả lời

1

#296 Đã một báo cáo lỗi cho thấy này

+0

Cảm ơn, có vẻ đây là một trong những chủ đề cần thêm tình yêu. – user1998398

4

Xem this issue, hoặc đây là giải pháp:

findOrCreate: (type, properties)-> 
    @store.find(type, properties.id).then null, (reason)=> 
    if reason.status == 404 
     record = @store.recordForId(type, properties.id) 
     record.loadedData() 
     record.setProperties(properties) 
     record.save() 
    else 
     throw reason 
Các vấn đề liên quan