On Fri, Jul 24, 2009 at 2:01 AM, Joao Silva <
[email protected]> wrote:
>
> Rails List wrote:
> > Joao Silva wrote:
> >> Here are my scopes:
> >>
> >> default_scope :order => 'posted_on DESC', :conditions => { :status =>
> >> 'visible' }
> >> named_scope :positive, :conditions => { :rating => 'positive', :status
> >> => 'visible' }
> >> named_scope :neutral, :conditions => { :rating => 'neutral', :status
> >> => 'visible' }
> >> named_scope :negative, :conditions => { :rating => 'negative', :status
> >> => 'visible' }
> >> named_scope :ignored, :conditions => { :status => 'ignored' }
> >>
>
> >> Why i'm getting ALL records when i run these scopes? Whatever scope i
> >> run i'm getting all records, whatever i set 'visible' or 'ignored' state
> >> :-(.
> >
> > How do you run them?. You should be as clear as possible to get
> > appropriate answers.
>
> Migration:
>
> create_table "messages", :force => true do |t|
> 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
>
> --
> Posted via http://www.ruby-forum.com/.
>
> >
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---