yield in ERB without rails

前端 未结 6 1731
轮回少年
轮回少年 2020-12-30 05:49

How can I use yield for template inheritance in erb? I want to use erb in a plain ruby CGI script and want to use a base template and subtemplate like it Rails wit

6条回答
  •  爱一瞬间的悲伤
    2020-12-30 06:17

    app.rb

    require 'erb'
    
    class Template
        def render(template_name="base")
            ERB.new(File.read("#{template_name}.erb")).result(binding)
        end
    end
    
    result = Template.new.render do
        ERB.new(File.read("index.erb")).result
    end
    
    puts result
    

    base.erb

    <%= render "footer" %> <%=yield %>

    index.erb

    Index Page

    footer.erb

    Footer here

    output image:

提交回复
热议问题