Rails根据父模型属性过滤子模型的记录

Aut*_*act 1 activerecord ruby-on-rails associations has-many

以下是1对M型号:

class FotoGossip < ActiveRecord::Base
    has_many :uploads
    attr_accessible :published_at, ...
end 

class Upload < ActiveRecord::Base
    belongs_to :foto_gossip
end
Run Code Online (Sandbox Code Playgroud)

现在我想要Uploads.all的条件:published_at NOT NULL相应上传的父模型?

Mil*_*ota 7

只需将其添加到您的上传模型:

named_scope :with_published_foto_gossip, :joins => :foto_gossip, :conditions => "foto_gossips.published_at IS NOT NULL"
Run Code Online (Sandbox Code Playgroud)

那么你可以像这样获得已发布的foto_gossip的所有上传内容:

Upload.with_published_foto_gossip 
Run Code Online (Sandbox Code Playgroud)