Tôi có thể sử dụng chức năng nào để kiểm tra xem một liên kết đã được tải chưa? Sẽ tốt hơn nếu kiểm tra xem một liên kết đã được tải thay vì cố gắng sử dụng nó và nhận được lỗi Ecto.Association.NotLoaded
.Làm cách nào để kiểm tra xem liên kết có được tải không?
6
A
Trả lời
3
Không chắc nếu có một hàm built-in để kiểm tra điều này, nhưng bạn có thể viết riêng của bạn như thế này:
defmodule PreloadCheck do
def is_preloaded(model, assoc) do
case Map.get(model, assoc) do
%Ecto.Association.NotLoaded{} -> false
_ -> true
end
end
end
Đây assoc
sẽ là nguyên tử đại diện cho tên hiệp hội của bạn.
Sử dụng đối sánh mẫu trong case
cho phép bạn kiểm tra xem liên kết của bạn đã được tải hay chưa hoặc nó vẫn trả về cấu trúc Ecto.Association.NotLoaded
.
5
Bạn có thể sử dụng assoc_loaded?
tham khảo: https://hexdocs.pm/ecto/Ecto.html#assoc_loaded?/1
0
Bạn có thể sử dụng Ecto.assoc_loaded/1 như Eduardo đề cập trong các ý kiến trên?. assoc_loaded?/1 documentation
Các vấn đề liên quan
- 1. Làm cách nào để kiểm tra xem hộp thoại Dojo có được tải không?
- 2. Làm cách nào để kiểm tra xem plugin jQuery có được tải không?
- 3. Làm cách nào để kiểm tra xem ổ cắm có được kết nối không?
- 4. Cách kiểm tra xem JCheckBox có được kiểm tra không?
- 5. Làm cách nào để kiểm tra xem kết nối có sử dụng ssl không?
- 6. Kiểm tra xem Đa giác có tự liên kết
- 7. Làm cách nào để kiểm tra xem điện thoại Android có được root hay không?
- 8. Cách kiểm tra xem Liên hệ có hình ảnh không?
- 9. Làm thế nào để kiểm tra xem máy khách ElasticSearch có được kết nối không?
- 10. Làm cách nào để kiểm tra xem Thuộc tính liên kết với các thành phần có bị "mất" không?
- 11. Làm thế nào để kiểm tra xem việc kiểm tra bẩn có được sử dụng không?
- 12. Kiểm tra xem liên kết có nằm trong hoặc ngoài
- 13. Làm cách nào để kiểm tra xem System.Net.WebClient.DownloadData có tải xuống tệp nhị phân không?
- 14. Làm cách nào để kiểm tra xem thông số mẫu có phải là vùng chứa liên kết đôi không?
- 15. Làm cách nào để kiểm tra xem id cụ thể có được gọi từ jQuery không?
- 16. cách kiểm tra xem exe có được đặt là LARGEADDRESSAWARE
- 17. Làm cách nào để kiểm tra xem tài nguyên được nhúng có tồn tại hay không?
- 18. Làm cách nào để kiểm tra xem nhánh chính có được gắn thẻ với Travis không?
- 19. Có cách nào để kiểm tra xem có các liên kết tượng trưng trỏ đến một thư mục không?
- 20. Thuật toán tốt nhất để kiểm tra xem danh sách được liên kết có chu kỳ
- 21. Làm cách nào để kiểm tra xem giao thức có được triển khai không?
- 22. Làm cách nào để kiểm tra xem ổ cắm có được đóng trong Boost.Asio không?
- 23. kiểm tra xem jquery-mobile có được tải
- 24. jQuery - Cách kiểm tra xem có liên kết nào được nhấp vào một DIV cụ thể không?
- 25. RSpec. Làm cách nào để kiểm tra xem phương thức đối tượng có được gọi không?
- 26. Làm cách nào để kiểm tra xem một đối tượng có được phát hành không?
- 27. Có cách nào để kiểm tra kết nối SQLAlchemy không?
- 28. Kiểm tra xem html 5 shim có được tải
- 29. cách kiểm tra xem đăng ký có được tải tất cả các hàng hiện có không?
- 30. Làm cách nào để kiểm tra các bảng được liên kết với khóa ngoài?
Cảm ơn. Tôi kết thúc bằng cách viết một hàm kiểm tra đơn giản nếu liên kết là một danh sách và đếm đó là đã tải. Tôi vẫn hy vọng có điều gì đó của hàm dựng sẵn thực hiện điều này. –
Vâng, bạn có thể sử dụng 'Ecto.assoc_loaded?';) Nó sẽ trả về một bool để nạp hay không. Tôi chỉ không chắc chính xác chức năng này có thời gian bao lâu, ít nhất là cho phiên bản 2.1.4 có sẵn. –
Nơi chức năng này sẽ được viết và làm thế nào sẽ ảnh hưởng đến mô hình? nếu bạn có thể giải thích rằng sẽ là tuyệt vời –