簡體   English   中英

生成動態ERB模板?

[英]Generate dynamic ERB templates?

我正在使用ERB來生成HTML代碼段。 所以我有一個(html.erb)模板,如下所示:

<html><head><title>Artsy</title></head>
  <body>
    <div id='name-container'>
      <%= @name %>
    </div>
  </body>
</html>

在渲染之后,它最終看起來像這樣:

<html><head><title>Artsy</title></head>
  <body>
    <div id='name-container'>
      Johnny
    </div>
  </body>
</html>

我有幾個相關的問題:

假設我希望用戶能夠以可視方式修改ERB模板,以便他可以將帶有id = 'name-container'的容器移動到模板的另一部分。 為了做到這一點,我應該考慮什么?

ERB是Ruby的模板引擎,我使用它是因為我擁有的值來自Ruby應用程序。 但是,如果我想研究有關如何執行此操作的替代方法(擁有模板並能夠傳遞預期的參數,例如@name),我應該尋找什么?

用戶可編輯的erb模板是一個壞主意,因為它們根本沒有沙箱:用戶可以輕松地編寫具有破壞性副作用的erb(無論是有意還是無意),或者最終依賴於您想要更改的應用程序的各個方面。

使用為此目的設計的模板語言,例如液體

使用我開發的dom gem,您可以直接從Ruby代碼創建HTML字符串。 使用它,你可以做以下事情:

require "dom"
["foo".dom(:span, class: "bold"), "bar"].dom(:div).dom(:body).dom(:html)
# => "<html><body><div><span class=\"bold\">foo</span>bar</div></body></html>"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM