Why does default scope break the #new method?


#1

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

Event.new

undefined method `1=’ for #Event:0xb68ce02c


#2

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

just a guess


#3

“:id => 1” or {:id =>1}


#4

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)


#5

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


#6

On Mar 16, 3:54 pm, David B. removed_email_address@domain.invalid wrote:

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

Event.new

undefined method `1=’ for #Event:0xb68ce02c

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