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)
    

    アプローチが機能しなかった理由を知りたい場合は、Rails ドキュメント<をお読みください。 / a> (Eager loading of associationsの後に10〜15行スクロールします セクション)。以下に関連するスニペットを含めました:

    アソシエーションのフィルタリングされた行を熱心にロードするには、条件付きのアソシエーションを使用します。

    class Post < ActiveRecord::Base
      has_many :approved_comments, :class_name => 'Comment', 
                 :conditions => ['approved = ?', true]
    end
    
    Post.find(:all, :include => :approved_comments)
    



    1. MSAccessに問題を引き起こしている新しいデータ型を修正する方法

    2. ORACLEIIFステートメント

    3. PostgreSQLのMAX()関数

    4. $variableまたは$_POST値をmysqlテーブルに挿入します