named scope lambda string substitution problem

I have a complex named scope like the following.

named_scope :foo, lambda {|foo, bar|     foo.each do |d|       #foo = "this line doesn't work #{s}"       baz = "something like this works " + s     end

    bar.each do |b|     end {   :conditions => {'baz' => 1} }}

It does some pre-processing to calculate the :conditions hash. The weird bit is that I get a bizarre syntax error when I try to use double quoted strings with substitutions. If I use a syntax such as "A"+str+"B" it's ok, but "A#{str}B" is a syntax error. Any thoughts?

I've tried to replicate it in pure ruby lambda functions but wasn't able to, leading me to think it may be related to the named scope.