Dường như với tôi rằng bộ nhớ đệm mảnh và tải háo hức là - ít nhất là đôi khi - có phần mâu thuẫn với nhau. Hãy nói rằng tôi có một người dùng có nhiều bài viết mà mỗi người có nhiều ý kiến mà lần lượt cũng có thể có nhiều ý kiến và như vậy.Bộ nhớ đệm phân đoạn và tải mong muốn: Cách tận dụng tối đa cả hai thế giới?
Khi tôi phải hiển thị trang, tôi có thể chọn tải người dùng một cách háo hức, tất cả các bài đăng của cô ấy, tất cả nhận xét của họ, v.v. để tránh nhấn cơ sở dữ liệu n-1 lần. Hoặc Tôi có thể tải từng đối tượng một cách lười biếng và dựa vào bộ nhớ đệm của đoạn để chỉ truy vấn cơ sở dữ liệu cho các đối tượng mới hoặc đã bị thay đổi. Sử dụng cả bộ nhớ đệm của bộ đệm và tải dữ liệu có vẻ lãng phí, vì tôi có khả năng thực hiện một truy vấn rất phức tạp và khởi tạo rất nhiều đối tượng chỉ để sử dụng một phần nhỏ của chúng. Nhưng nếu tôi có một ứng dụng trong đó Người dùng có nhiều Foos có nhiều Thanh và nhiều thứ khác, nhưng trong đó mỗi Foo được tạo ra hoàn chỉnh với tất cả các Thanh và các đối tượng liên quan của nó cùng một lúc và từ sau đó không bao giờ thay đổi. Trong trường hợp đó, tôi muốn sử dụng bộ nhớ đệm mảnh cho Foos đã được trả lại, nhưng để sử dụng tải mong muốn khi tôi phải tải một Foo mới với tất cả các đối tượng liên quan của nó. Sau khi tất cả, không có gì để đạt được từ các bộ nhớ đệm ở mức độ chi tiết hơn.
Cách tốt nhất trong Rails để thực hiện việc này là gì? Tôi cho rằng tôi có thể thực hiện một truy vấn để chỉ nhận được các id của Foo, và sau đó thực hiện tìm kiếm rõ ràng với tải mong muốn khi tôi phải render từng Foo. Có cách nào tốt hơn/thanh lịch hơn/thành ngữ hơn để làm việc này không?
Tôi nhận được điều này khi cố gắng truy cập fragment_exists? trong một bộ điều khiển '*** NoMethodError Ngoại lệ: phương thức không xác định \' fragment_exists? ' cho # ' –
Ah, có vẻ như bạn muốn' fragment_exist? 'không có sự đa dạng hóa –