2017-04-13 371 views
-3

enter image description here如何將字符串轉換爲純文本

我想實現一個Mongo查詢。我寫了一個函數,返回查詢參數之一:

"'Week Of': {'$in': [02/13/17]}" 

我不希望在字符串的前面和後面加雙引號。我知道它是一個字符串,它需要它,但是當我將它注入到查詢中時,它將不起作用,因爲它具有雙引號。有沒有什麼辦法將字符串轉換爲純文本,以便它只會是

'Week Of': {'$in': [02/13/17]} 

我有一個接受的哈希像中間的一個模型:

Nosql.aggregate([ p_header + ", " + s_header], {args[0]}, table.target_collection.name.to_sym) 

第二個參數是:

args[0] = "'Week Of': {'$in': [02/13/17]}" 

這不起作用。然而,當我手動放在

'Week Of': {'$in': [02/13/17]} 

代替

args[0] 

它的工作原理。

+2

顯示你的代碼。此外,雙引號不可能在字符串中 - 當您顯示一個字符串以表明它是一個字符串時,它們就會顯示出來。 – dbugger

+0

已更新@dbugger – brandoncodes

+0

你確定你的args [0]是''Week Of':{'$ in':[02/13/17]}「,因爲這是一個字符串在控制檯中的樣子。 – dbugger

回答

0

看起來像它想要一個散列,當你在作品中輸入它。但是,當你像你想要做的那樣在大括號中放置一個字符串參數時,Ruby不會以同樣的方式解析它。你可以用eval來做一些事情,但是讓你的函數產生參數來返回一個散列而不是一個字符串會更簡單。

你不顯示代碼,但是你想是這樣的......

def make_my_hash(dates) 
    return {"Week of" => { "$in" => dates}} 
end 

然後更改您的調用...

Nosql.aggregate([ p_header + ", " + s_header], args[0], table.target_collection.name.to_sym) 
相關問題