Wie würde ich '49' finden und ersetzen, wenn '49' eine unbekannte ID ist, mit Ruby auf Schienen?Ruby Regex Suchen und Ersetzen einer Zahl innerhalb einer Zeichenfolge
str = "select * from clients where client_id = 49 order by registration_date asc"
str = str.gsub(/someRegExThatFinds49/, replacement_id) # <------ Here's the concept
Suchen Sie nach einer Syntax und einem Beispiel, das korrekt ist. Vielen Dank.
Größere Frage zurück, warum bearbeiten Sie eine SQL-Zeichenfolge in Schienen? Sie müssen selten sql in Schienen berühren. Welches größere Problem versuchen Sie zu lösen? – DGM
Ein Wort der Warnung - alle Antworten, die ich hier sehe, verwenden 'gsub', das _all_ Vorkommen der Regex in der Zeichenfolge ersetzen wird. Wenn Sie wissen, dass Ihre numerische ID immer die erste Nummer in der Zeichenfolge ist, ist das reguläre "Sub" sicherer, da es nur die erste Übereinstimmung ersetzt. Wenn Ihre ID an einer beliebigen Position sein könnte, möglicherweise mit anderen Nummern davor, sind die Regeln wahrscheinlich nicht das, wonach Sie suchen. Es wäre einfach zu kompliziert. –
DGM, Jeder Client erstellt benutzerdefinierte Berichte, wobei 'str' dynamisch vom Client erstellt und als String in der Datenbank gespeichert wird. Daher enthält die Datenbanktabelle 'report' Hunderte von zugehörigen Datensätzen in 'report_details', die diese SQL-Abfragen enthalten. Ich bin ziemlich neu in Schienen und musste diese Aufzeichnungen unter bestimmten Umständen manipulieren, und nahm diesen Ansatz aufgrund meiner begrenzten Kenntnisse von Schienen. – iamtoc