2014-03-05 135 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

相关问题