Rails Filter records of child model based upon the

2020-07-29 23:43发布

问题:

Following are the 1-to-M models:

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

class Upload < ActiveRecord::Base
    belongs_to :foto_gossip
end

Now I want the Uploads.all with the condition :published_at NOT NULL of the corresponding upload's parent model?

回答1:

Just add this to your Upload model:

named_scope :with_published_foto_gossip, :joins => :foto_gossip, :conditions => "foto_gossips.published_at IS NOT NULL"

then you can get all the uploads with published foto_gossip like this:

Upload.with_published_foto_gossip