Generador de consultas SQL de Rails… o generador de consultas ActiveRecord

Necesito ejecutar una consulta SQL como

<code>sql = 'SELECT * FROM users WHERE id != ' + self.id.to_s + ' AND id NOT IN (SELECT artner_id FROM encounters WHERE user_id = ' + self.id.to_s + ')'
sql += ' AND id NOT IN (SELECT user_id FROM encounters WHERE partner_id = ' + self.id.to_s + ' AND predisposition = ' + Encounter::Negative.to_s + ')'
sql += ' AND cfg_sex = ' + self.sex.to_s + ' AND cfg_country = ' + self.country.to_s + ' AND cfg_city = ' + self.city.to_s
sql += ' ORDER BY rand() LIMIT 1'
</code>

Puede ser ejecutado por AR.find_by_sql, pero el código anterior es mal legible. ¿Hay algún generador de consultas que pueda construir esa consulta?

Por ejemplo, Kohana (es PHP framework, soy desarrollador php, pero quiero cambiar ese lenguaje infantil a ruby ​​/ rails) tiene un generador de consultas, que funciona así:

<code>$sql = DB::select('*')->from('users');
$sql->where('id', 'NOT_IN', DB::expr('SELECT partner_id FROM encounters WHERE user_id = '.$user->id));
$sql->where('id', 'NOT_IN', DB::expr('SELECT user_id FROM encounters WHERE partner_id = '.$user->id.' AND predisposition = '.Encounter::Negative));
....
etc
...
</code>

La consulta que se creó con el generador de consultas como un generador de consultas de Kohana es más legible y comprensible.

¿Hay alguna gema para resolver este problema?

Respuestas a la pregunta(3)

Su respuesta a la pregunta