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}

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.

On Mar 16, 3:54 pm, David B. [email protected] 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

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs