2012-05-31 13 views
9

Jak mogę zapisać ciąg ruby ​​z osadzonymi zmiennymi w yaml, ale wstawić wartości zmiennych tylko wtedy, gdy otrzymam ciąg z yaml?Ciągi ruby ​​z osadzonymi zmiennymi

+0

co masz na myśli przez ciąg z wbudowanych zmiennych? Czy na pewno chcesz wstawić tylko zmienne * names ... –

+0

On chce później wykonać interpolację. Zgaduję. –

+0

Przeczytałem pytanie jako chcące zrobić coś w stylu "Tekst dla Yaml # {zmienna}". To_yaml gdzie zmienna nie jest oceniana zanim zostanie wysłana do yaml. – vlasits

Odpowiedz

19
str = "Hi %{name}, %{msg}. Bye %{name}." #yaml it, de-yaml it back to string 
h = {:name=> "John", :msg=> "this message is for you"} 
puts str % h 
#=>Hi John, This message is for you. Bye John. 
+0

tak, właśnie tego chcę – yatagarasu

+2

Tak fajnie sprintf! – Hooopo

+0

WOW! Ruby na dobre! –

2

HTML erb w pliku YAML jako szyn zrobił:

# config/initializers/load_config.rb 
APP_CONFIG = YAML.load_file("#{Rails.root}/config/app_config.yml")[Rails.env] 


# config/app_config.yml 
development: 
    key1: <%= # ruby code ... %> 
test: 
    key1: <%= # ruby code ... %> 
production: 
    key1: <%= # ruby code ... %> 
Powiązane problemy