我有一些html內容存儲在數據庫字段中。我希望我們的系統中的可信管理員能夠在需要時編輯HTML。最終這個html將被轉換成電子郵件消息併發送給用戶。除了靜態HTML內容之外,電子郵件還具有存儲在活動記錄模型中的名字和姓氏。在Rails中呈現存儲在數據庫中的HTML輸出
當管理員編輯內容時,我希望在HTML文本內部保留<%= user.firstname user.lastname %>
,然後將內容與嵌入的erb電子郵件渲染器事件結合。我有管理員可以保存HTML的部分工作正常。
但是,即使忽略電子郵件,只是嘗試渲染到一個正常的網頁,我無法得到一個視圖正確替換嵌入式<%= ... %>
與數據庫中的信息。我總是看到<%= ... %>
而不是替代文字。我曾嘗試render_to_string,渲染:在線等
綜上所述,我想:
- 採取嵌入一些ERB一些HTML文本從數據庫
- 貫穿一個範本中的文字嵌入式再培訓局被替換爲傳遞到當地人的變量
- 承擔由此產生的文本塊,要麼根據我的需要,通過電子郵件發送給用戶或顯示在網頁上
問題是結果總是有<%= ... %>
而不是替換。
在一個示例中控制器I具有:
def showit
@storedhtml = mymodel.savedhtml
@emailtext = render_to_string(template: 'e.html.erb',
layout: false, locals: { user:@user })
end
的e.html.erb包含:
<%= raw @storedhtml %>
和showit.html.erb具有:
= raw @emailtext
我也嘗試使用這樣的內聯:
def showit
# the line below is substituted but the <p> tags are not converted
@stuff = "<%= '<p>testme</p>' + user.firstname %>"
@storedhtml = mymodel.the_html_content
@output = render(inline: @storedhtml, locals: { user:@user }, layout: true)
end
謝謝 - 我能夠與Liquid合作。我會在這裏發佈我的結果作爲答案,以防止他人幫助他人。 – Tree
嗨樹,很高興幫助你 – sameera207