On Fri, Jul 24, 2009 at 2:01 AM, Joao S. <
[email protected]> wrote:
=> ‘visible’ }
named_scope :negative, :conditions => { :rating => ‘negative’, :status
=> ‘visible’ }
named_scope :ignored, :conditions => { :status => ‘ignored’ }
t.string "rating", :default => "neutral"
t.boolean "ignored", :default => false
t.datetime "created_at"
t.datetime "updated_at"
end
Class:
class Message < ActiveRecord::Base
default_scope :order => ‘posted_on DESC’, :conditions => { :ignored =>
false }
named_scope :positive, :conditions => { :rating => ‘positive’ }
named_scope :neutral, :conditions => { :rating => ‘neutral’ }
named_scope :negative, :conditions => { :rating => ‘negative’ }
You can write the above three named_scope as follows:
named_scope :rating_type, lambda { |type| { :rating => type } }
Usage: Message.rating_type( ‘positive’ )
Message.rating_type( ‘neutral’ )
Message.rating_type( ‘negative’ )
named_scope :ignored, :conditions => { :ignored => true }
The above name_scope here redefines the previous definition.
named_scope :commented, lambda {
message_ids = Comment.connection.select_values(“SELECT message_id
FROM comments”)
{:conditions => {:id => message_ids}}
}
I’m not really sure what you’re trying to do here. Are you trying to
retrieve all
the message ids that have comments. I take it that you have the
following
type of association for a Comment:
class Comment < ActiveRecord::Base
belongs_to :message
end
If not, could you provide some more information about the Comment class
and
how
Messages are associated with it?
-Conrad
named_scope :today, :conditions => [‘created_at BETWEEN ? AND ?’,
Time.now.beginning_of_day, Time.now.end_of_day]
end
Message.ignored -> returns all records 
When you run the above what SQL is being generated in the logs? This
would
be a good place to look.
-Conrad