D'abord activer le general query log dans MySQL et voir si la requête, telle que reçue et exécutée par MySQL elle-même, est correcte.
C'est parce que Rails squeeze tout double des espaces de ses propres journaux de requêtes (en cours d'exécution en mode développement):
# /rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
def log_info(sql, name, ms)
if @logger && @logger.debug?
name = '%s (%.1fms)' % [name || 'SQL', ms]
@logger.debug(format_log_entry(name, sql.squeeze(' ')))
end
end
Si la requête envoyée à MySQL, en fonction de la requête MySql journal lui-même, est encore incorrect, essayez à nouveau avec:
Order.find :all, :conditions => [ 'org = ?', 'test org' ]
C'est une idiosyncrasie bien documenté de MySQL où l'utilisation 'LIKE' respecte les espaces blancs alors que' '= ne fonctionne pas: https://bugs.mysql.com/bug.php?id = 64772 –