Logical deletion by extending has_many associations

Hi,

I'm trying to implement logical deletion on my model by extending the
has_many association, in a code like this:

class Post < ActiveRecord::Base
  has_many :comments do
    def self.comments
      find :all, :conditions => 'confirmed is not null'
    end
  end
end

where confirmed is a datetime field on my database.

The problem is that when I call Post#comments I'm getting the usual
find :all query.

Has anyone implemented logical deletion by extending the has_many
association?

Thanks in advance,
Marcos

Hi,

I'm trying to implement logical deletion on my model by extending the
has_many association, in a code like this:

class Post < ActiveRecord::Base
has_many :comments do
   def self.comments
     find :all, :conditions => 'confirmed is not null'
   end
end
end

That would give you the ability to say some_post.comments.comments
(although you don't need the self. )
Why not just do this at the top level? ie
has_many :comments, :conditions => ...

Fred

Hi Fred,

Now I understand what I did but that's no quite what I was trying to
achieve. My goal was say some_post.comments and that would return only
the comments where the confirmed field wasn't null.

Thanks for your answer.

[]'s
Marcos

Fred,

Now I've got it:

has_many :comments, :conditions => 'confirmed_at is not null'

And that does what I need.

Thank you,
Marcos