2012-03-23 5 views
7

Böyle bir şey yapmak istiyorum:Bir ray olmayan uygulamada erb kısmi nasıl uygulanır?

require 'erb' 
@var = 'test' 
template = ERB.new File.new("template.erb").read 
rendered = template.result(binding()) 

Ama Partials template.erb içinde nasıl kullanabilirim?

+0

Olası http://stackoverflow.com/a/2467313/772874 kopyasının kopyası Bunun için ActionView'a ihtiyacınız var. –

cevap

6

Belki de kaba kuvvet?

header_partial = ERB.new(File.new("header_partial.erb").read).result(binding) 
footer_partial = ERB.new(File.new("footer_partial.erb").read).result(binding) 

template = ERB.new <<-EOF 
    <%= header_partial %> 
    Body content... 
    <%= footer_partial %> 
EOF 
puts template.result(binding) 
+0

Teşekkürler! Thats tam olarak ne ile geldim;) – bluegray

+0

Bu konuda yardımcı olabilecek bir mücevher var mı? – Kirby

1

aynı şeyi öğrenmek için çalışıyordu ve çok ERB ve diğer şablon sistemleri sarar Tilt gem kullanarak dışındaki tatmin edici olduğunu bulamadık ve aka (blokları geçen destekler, ayrı sonuçları işlemek biraz daha hoş olabilir. senin yakut çağrısı

template = Tilt::ERBTemplate.new("layout.erb") 

File.open "other_template.html" do |file| 
    file.write template.render(context) { 
     Tilt::ERBTemplate.new("other_template.erb").render 
    } 
end 

O yield vücuda other_template sonuçlarını uygulanacaktır içinde

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8" /> 
    <title><%= title %></title> 
</head> 
<body> 
    <%= yield %> 
</body> 
</html> 

Sonra https://code.tutsplus.com/tutorials/ruby-for-newbies-the-tilt-gem--net-20027

layout.erb:

Görülme.

İlgili konular