Kann eine ActiveRecord '.select' Methode eine interpolierte Zeichenfolge wie in '.where' haben?

8

Die% ac_de% -Abfragemethode von ActiveRecord unterstützt folgende Interpolation:

%Vor%

Unterstützt die .where() -Methode eine ähnliche Interpolation oder müssten wir die standardmäßige Ruby-String-Interpolation verwenden (z. B. .select() ).

(Dies mag wie ein weit hergeholter Anwendungsfall aussehen, aber im Wesentlichen erstellen wir eine Abfrage mit einem berechneten Feld - zum Beispiel "WHEN genre_id IS #{genre_id} THEN 2" - die abhängig von den Feldern jedes Datensatzes über eine SUM() as sum -Anweisung unterschiedliche Werte verwendet , und wir möchten vermeiden, dass die Werte hart codiert werden.)

Ich bin an allen Antworten interessiert, aber diese spezielle Anwendung ist immer noch auf Rails 3.2.x.

    
pjmorse 17.09.2015, 13:51
quelle

1 Antwort

4

Sie können dafür eine der ActiveRecord :: Sanitization verwenden:

%Vor%

Und verwende diese Methode innerhalb der AR-Verkettung:

%Vor%     
Alexander Shlenchack 17.09.2015 14:11
quelle

Tags und Links