[Rails] Re: [AR] #{id} namespace visibility used in finder_sql
Jeremy Evans
jeremyevans0 at gmail.com
Wed Mar 1 00:17:27 GMT 2006
On 2/28/06, Mark Reginald James <mrj at bigpond.net.au> wrote:
> Mathieu Chappuis wrote:
>
> > has_many :senders,
> > :class_name => 'Service',
> > :finder_sql => "select sendername, sendercode from legacy_senders
> > where cid in (
> > select cid from legacy_mail
> > serid = #{id}
> > ) "
> > end
> >
> > In the log, the query for
> >
> >>s=Service.find(number).senders
> >
> > give the objectid (253625) in the SQL, not the the record'id (124)
> > from the Service.
>
> Use single quotes rather than double quotes around your finder_sql
> in order to delay evaluation.
Or escape it:
:finder_sql => "select sendername, sendercode from legacy_senders
where cid in (
select cid from legacy_mail
serid = \#{id}
) "
Escaping may be better than using single quoted strings, as it allows
you to subsitute some values with #{} but not others.
More information about the Rails
mailing list