s.ross-
Yeah I see what the problem is. I need to add a bit to the
documentation to clarify this. The problem is that inside the
Condition.new block, self is another object internal to the ez_where
plugin. So instance variables with the @ sign are not set because
they are instance variables and you are inside another instance
inside that block. If you make @phrase a local variable by changing
it to phrase without the @ sign it will work properly.
Cheers-
-Ezra
On Apr 15, 2006, at 10:48 AM, s.ross wrote:
>
> I have the following code:
>
> condition_clause = "%#{@phrase}%"
> logger.info "condition is #{condition_clause}"
> unless @phrase.nil?
> condition = Caboose::EZ::Condition.new :affiliates do
> affiliate_name =~ "%#{@phrase}%" # <<<
here''s the problem
> end
> options[:conditions] = condition.to_sql
> logger.info "ajax param is #{@phrase}"
> logger.info "ez condition is #{condition.to_sql}"
> end
>
> The output from the logs is:
>
> ajax param is map
> ez condition is
>
> In other words, the the where clause is not being constructed.
> However, if I
> change the line marked above to:
>
> affiliate_name =~ condition_clause # <<< here''s the fix
>
> Everything works. I''ve ascertained that by the time I''m
in
> operator=~, all
> that''s left is ''%%''.
>
> Is there something obvious I''ve missed about this straightforward
> variable
> interpolation?
>
> TIA
>
> --
> View this message in context: http://www.nabble.com/ez_where-%3A-i%
> 27m-puzzled-t1455038.html#a3932303
> Sent from the RubyOnRails Users forum at Nabble.com.
>
> _______________________________________________
> Rails mailing list
> Rails@lists.rubyonrails.org
> http://lists.rubyonrails.org/mailman/listinfo/rails