Mysql
 sql >> база данни >  >> RDS >> Mysql

Релси 3 - Нетърпеливо натоварване с условия

Добавете нова асоциация, наречена published_pages (освен настоящите ви асоциации)

class Category

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

end

Сега можете да получите всички категории, както следва:

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

Ако се интересувате да научите защо подходът ви не работи, прочетете документацията (превъртете 10-15 реда след Eager loading of associations раздел). Включих съответния фрагмент по-долу:

За да заредите нетърпеливо филтрирани редове от асоциация, използвайте асоциация с условия:

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. Препратка към външния ключ на MySQL

  2. Nginx - Изтегляне на PHP вместо изпълнение

  3. Функция за преобразуване на MySQL

  4. Преобразувайте датата във формат MM/DD/YYYY в MySQL дата

  5. Вмъкване с помощта на PreparedStatement. Как да увелича автоматично идентификатора?