要設置一個字符串數組中@tag
和\"
表示escaped character,在這種情況下"
這是使用紅寶石代表String
對象。
考慮下面的代碼(試試IRB):
foo = ["bar", "baz"]
#=> ["bar", "baz"]
foo.inspect
#=> "[\"bar\", \"baz\"]"
foo.each { |f| puts "tag: #{f}" }
# tag: bar
# tag: baz
正如你所看到的,確實沒有\
字符從字符串,紅寶石它只是如何輸出String
表示剝離。所以,你的代碼並不需要.strip
方法:
@tags = []
params[:tags].split(', ').map do |tag|
@tags.push(tag)
end
不相關的問題,但仍然具有現實意義:split
方法將返回一個數組,所以沒有必要創建一個再前推項目對它;只需將返回的數組分配到@tags
即可。
例如:
params[:tags] = "witcher 3, badass, epic"
#=> "witcher 3, badass, epic"
@tags = params[:tags].split(', ')
#=> ["witcher 3", "badass", "epic"]
如果你願意,你仍然可以使用map
和strip
除去開頭和結尾的空格:
params[:tags] = "witcher 3, badass , epic "
#=> "witcher 3, badass , epic "
params[:tags].split(",").map(&:strip)
#=> ["witcher 3", "badass", "epic"]
這是有史以來第一次我雖然是一個堆棧溢出問題不是一個問題。謝謝你的亮點! – Jaeger
@Jaeger很高興幫助!另請檢查更新後的答案,以獲取代碼的其他提示。 – Gerry
謝謝,我已經知道這些技巧,但我很快就會使用它們:) – Jaeger