subselects and associations(:include)

Hi.

Is there a way to stop rails from tokenizing a mysql query? I have an association where I need to change :select to:

:select => "*, (select count(something_id) from second_table where second_table.something_id = main_table.id ) as count"

It works OK without loading associations, however I need to add 'count' does not exist.

How can this made to work?

It can't. joins based :include overwrites the select. The non joined based include doesn't but rails won't use it because it sees you referencing tables other than the main table in the query (and isn't smart enough to work out that it's ok because it's just a subselect).

Fred

Have you tried using the :joins key and manually specifying your joins?

Have you tried using the :joins key and manually specifying your joins?

It depends on what you're trying to achieve. If you want to eager load
stuff the :joins won't do it. If you just want to join some tables
because you need them for your conditions etc... then :joins is
exactly what is needed.

Fred