2014-03-05 147 views
0

我需要讓我的「串」到:字符串需要「字符串」爲:字符串

目前,我有這個,給這樣的:

Holidays.between(from, to, ":de") 

但我需要這個

Holidays.between(from, to, :de) 

請幫忙!

+4

那''「:de」'從哪裏來? – Stefan

+0

我正在創建ist。我也可以創建de。這會更好嗎? – user3383458

+0

這可能會修復它,看到我的回答在 – Stefan

回答

3

假設你正在使用的Holidays寶石,只是從你的字符串中刪除冒號,即使用"de"代替":de"。寶石處理轉換爲您提供:

require 'holidays' 

from = Date.civil(2014, 1, 1) 
to = Date.civil(2014, 12, 31) 

Holidays.between(from, to, "de") 
#=> [{:date=>#<Date: 2014-01-01 ((2456659j,0s,0n),+0s,2299161j)>, :name=>"Neujahrstag", :regions=>[:de]}, {:date=>#<Date: 2014-04-18 ((2456766j,0s,0n),+0s,2299161j)>, :name=>"Karfreitag", :regions=>[:de]}, {:date=>#<Date: 2014-04-21 ((2456769j,0s,0n),+0s,2299161j)>, :name=>"Ostermontag", :regions=>[:de]}, {:date=>#<Date: 2014-05-01 ((2456779j,0s,0n),+0s,2299161j)>, :name=>"Tag der Arbeit", :regions=>[:de]}, {:date=>#<Date: 2014-05-29 ((2456807j,0s,0n),+0s,2299161j)>, :name=>"Christi Himmelfahrt", :regions=>[:de]}, {:date=>#<Date: 2014-06-09 ((2456818j,0s,0n),+0s,2299161j)>, :name=>"Pfingstmontag", :regions=>[:de]}, {:date=>#<Date: 2014-10-03 ((2456934j,0s,0n),+0s,2299161j)>, :name=>"Tag der Deutschen Einheit", :regions=>[:de]}, {:date=>#<Date: 2014-12-25 ((2457017j,0s,0n),+0s,2299161j)>, :name=>"1. Weihnachtstag", :regions=>[:de]}, {:date=>#<Date: 2014-12-26 ((2457018j,0s,0n),+0s,2299161j)>, :name=>"2. Weihnachtstag", :regions=>[:de]}] 

目前還不清楚其中結腸來自擺在首位(看起來像一個bug),但你也許應該修復它在那裏,而不是轉換的字符串。

+0

對我來說是新的..那個寶石.. :-) –

+2

+1在源頭解決問題而不是一個不可靠的解決方法。 –

+0

非常感謝。 那麼我與創建它: RSTRING = rstring.insert(0, 「:」)\t RSTRING = rstring.upcase \t \t \t \t RSTRING = rstring.swapcase \t \t \t RSTRING = RSTRING [0..2] return rstring – user3383458

4

String#to_sym是你需要呼籲串to_sym什麼,它成爲一個符號

你需要將其轉換爲字符串(以獲得所需的確切標誌),所以低於之前刪除字符串中的:會做到這一點

Holidays.between(from, to, ":de".sub(":","").to_sym) #=> Holidays.between(from, to, :de) 
+3

字符串以冒號開頭,所以'.to_sym'會返回':':de「' - 可能不是OP需要的。 – Stefan

相關問題