Rails 3, WIE query löst Ausnahme aus, wenn mit einem doppelten Doppelpunkt und ein Punkt

In rails 3.0.0, die folgende Abfrage funktioniert einwandfrei:

Author.where("name LIKE :input",{:input => "#{params[:q]}%"}).includes(:books).order('created_at')

Allerdings, wenn ich die Eingabe als Suchbegriff ein (also mit einem doppelten Doppelpunkt, gefolgt von einem Punkt):

aa:.bb

Bekomme ich die folgende exception:

ActiveRecord::StatementInvalid: SQLite3::SQLException: Mehrdeutiger Spaltenname: created_at

In den logs die dies sind die sql-Abfragen:

with aa as input:
Author Load (0.4ms)  SELECT "authors".* FROM "authors" WHERE (name LIKE 'aa%') ORDER BY created_at
Book Load (2.5ms)  SELECT "books".* FROM "books" WHERE ("books".author_id IN (1,2,3)) ORDER BY id

with aa:.bb as input:
SELECT DISTINCT "authors".id FROM "authors" LEFT OUTER JOIN "books" ON "books"."author_id" = "authors"."id" WHERE (name LIKE 'aa:.bb%') ORDER BY created_at DESC LIMIT 12 OFFSET 0
SQLite3::SQLException: ambiguous column name: created_at

Es scheint, dass mit der aa:.bb-Eingang, eine zusätzliche Abfrage zum abrufen der eindeutigen Autor id_s.

Ich dachte, Schienen würde Flucht alle Zeichen. Ist dieses erwartete Verhalten oder ein bug?

Beste Grüße,

Pieter

InformationsquelleAutor Pieter | 2010-09-25
Schreibe einen Kommentar