Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Đường ray 3 - Tải hào hứng với các điều kiện

Thêm một liên kết mới có tên là published_pages (ngoài các liên kết hiện tại của bạn)

class Category

  has_many   :children,        :class_name => "Category", 
               :foreign_key => "parent_id"
  has_many   :published_pages, :class_name => "Page", 
               :conditions  => { :is_published => true }

end

Bây giờ bạn có thể nhận được tất cả các danh mục như sau:

self.categories.includes(:children, :published_pages)

Nếu bạn muốn tìm hiểu lý do tại sao phương pháp của bạn không hoạt động, hãy đọc Rails tài liệu (cuộn 10-15 dòng sau khi Eager loading of associations tiết diện). Tôi đã bao gồm đoạn mã có liên quan bên dưới:

Để tải nhanh các hàng đã lọc của một liên kết, hãy sử dụng một liên kết với các điều kiện:

class Post < ActiveRecord::Base
  has_many :approved_comments, :class_name => 'Comment', 
             :conditions => ['approved = ?', true]
end

Post.find(:all, :include => :approved_comments)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nhập nhiều tệp kết xuất .sql vào cơ sở dữ liệu mysql từ shell

  2. mysql quên ai đã đăng nhập:lệnh bị từ chối đối với người dùng '' @ '%'

  3. Cách lưu trữ tệp trong cơ sở dữ liệu mysql bằng blob

  4. Laravel $ q-> where () giữa các ngày

  5. MySql - HAVING so với WHERE