Why does default scope break the #new method?

class Event < ActiveRecord::Base   default_scope :conditions => "id = 1" end

Event.new

undefined method `1=' for #<Event:0xb68ce02c>

class Event < ActiveRecord::Base   default_scope :conditions => {:id = 1} end

just a guess

":id => 1" or {:id =>1}

With regards to the other responses, your syntax is fine. Default_scope with conditions has seemed a bit broken recently (http:// rails.lighthouseapp.com/projects/8994/tickets/2199-default_scope- errors-with-named_scope) but I've just updated to tag v2.3.2 and your specific example now works fine.

Hope that helps. Andrew

Fwiw, I'm seeing similar things even on 2.3.2, with slightly different default_scopes:

  default_scope :conditions => ["played_on < ?", Time.now]

leads to:

  undefined method `played_on < ?=' for #<Game:0x21c5e88> (when Game.new is called)

when I call Game.new

Best, Rick

(and, yes, I know Time.now isn't going to do what I expect, just ended up there while trying to troubleshoot the problem)

Any news on this? I'm also on Rails 2.3.2. and can't find a way around this bug.