2016-12-16 64 views
0

所以我有一個名爲plan_code的對象,它在數據庫中是一個字符串。不過,我試圖允許實施多個條目。我讓用戶用逗號分隔這些條目。在Ruby中刪除數組中的括號

我一直在分裂整數,但我遇到了一個問題,在我拆分它們並顯示它們後,它們被括號包圍,就好像它們已經成爲一個大型數組一樣。

在我的模型我的代碼看起來像

def bob 
    plan_code.split(",").map(&:to_i) 
end 

我的結果收場爲[123451, 52354, 12345]

我不知道我能做些什麼來擺脫這些括號的,只是列出整數?

+0

...你明確地創建帶有'map'的數組。如果那不是你想要的,爲什麼呢?你已經*有一個逗號分隔的字符串。你想做什麼? –

+0

用戶用一個逗號分隔它們輸入整數,我想在它們之間也顯示一個空格。 (多數民衆贊成在最後我想在這裏做) – kdweber89

+2

如果你想規範一個奇怪的輸入,那麼你需要拆分',',去掉前導和尾隨空白,然後用'''連接起來。國際海事組織你做錯了:最壞的情況下,你應該將其存儲爲一個實際的數組,例如,序列化。如果計劃代碼是數據庫工件,那麼您應該使用真實的關係。 –

回答

2

如果您將值存儲爲字符串,例如"123, 123",那麼在map &:to_i中沒有意義。

您可以使用plan_code.split(",").join(", ")或可替代plan_code.gsub(",", ", ")

+0

非常感謝你!基於你的答案,肯定意識到我做錯了什麼。 – kdweber89

+1

很高興。我認爲這種方法(將數組作爲序列化字符串存儲)適用於小數據集,但是您錯過了查看SQL查詢中的這些數組值的功能。這就是Rails使用關聯/外鍵的原因。例如,假設你想搜索所有的'plan_code'記錄並找出哪一個包含一個特定的數字。你需要反序列化每一個。 –