如何在'49'將是未知ID時使用ruby on rails來查找並替換'49'?Ruby正則表達式查找並替換字符串中的數字
str = "select * from clients where client_id = 49 order by registration_date asc"
str = str.gsub(/someRegExThatFinds49/, replacement_id) # <------ Here's the concept
尋找一個正確的語法和示例。謝謝。
回答更大的問題,你爲什麼要在rails中編輯sql字符串?你很少需要在rails中觸摸sql。你想解決什麼大問題? – DGM 2012-03-30 18:13:29
警告一句話 - 我在這裏看到的所有答案都是使用'gsub',它將替換字符串中正則表達式的_all_事件。如果您知道您的數字ID始終是字符串中的第一個數字,則常規「sub」將更安全,因爲它只替換第一個匹配項。如果您的身份證可能位於任何位置,可能還有其他數字,則可能不是您要查找的。這太容易搞砸了。 – 2012-03-30 18:20:03
DGM,每個客戶端都在創建自定義報告,「str」由客戶端動態構建並作爲字符串存儲在數據庫中。因此,數據庫表'report'在'report_details'中包含數百個關聯記錄,其中包含這些sql查詢。我對軌道相當陌生,在某些情況下需要操縱這些記錄,並且由於我對軌道的瞭解而採取了這種方法。 – iamtoc 2012-03-30 18:24:51