-1
我想致電User.first
,但我知道它是"User.first"
。如何去掉引號,以便我可以撥打User
?使用這樣的正則表達式:gsub!(/\A"|"\Z/, "")
返回nil
而不是表達式。刪除對象中的引號
我想致電User.first
,但我知道它是"User.first"
。如何去掉引號,以便我可以撥打User
?使用這樣的正則表達式:gsub!(/\A"|"\Z/, "")
返回nil
而不是表達式。刪除對象中的引號
首先,我要說的是,這是危險的依據您的輸入是來自做到這一點,但如果你絕對需要運行字符串中包含的任意Ruby代碼,你可以使用eval
:
http://ruby-doc.org/core-2.2.2/Kernel.html#method-i-eval
同樣,如果可能的話,我會避免評估字符串。
正則表達式適用於我。報價是否真的是字符串的一部分? – Meier
@Meier,上述不起作用,因爲gsub只評估字符串內部的內容。這就是爲什麼它返回零。如果我做'User.first'「gsub!(/ \ A'|'\ Z /,」「),我會返回」User.first「,因爲單引號是字符串的一部分,但雙引號不是。 kevinthompsons的答案是正確的。 – Arel
所以引號不是字符串的一部分。引號只是ruby解釋器知道里面是字符串所需的語法。引號在運行時不存在,這就是爲什麼試圖用gsub刪除它們失敗的原因。 – Meier