2014-09-10 20 views
0

我有一個@ page.content它存儲在數據庫中作爲文本列。是否有一種簡單的方法在HTML內容中嵌入渲染標籤?在wysiwyg文本里面渲染一個模板

<div>Lorem ipsum</div> 
<%= render 'image_slider' %> 
<div>Lorem ipsum</div> 
+0

你在找'eval' – Nithin 2014-09-10 11:58:41

+0

'@ page.content'是一個字符串,你可以'render_to_string'image_slider''然後做插入或者分支到'@ page.content'。如果這看起來很粗糙,請使用nokogiri。另外,你可以在客戶端插入javascript所需的標籤,用jquery很容易。 – 2014-09-10 12:21:17

+0

2,感謝您的回答。我不明白如何使用eval來解決這個問題。你能提供一些代碼來解釋嗎? – Dmitriy 2014-09-11 10:09:07

回答

0

我選擇引入nokogiri方式有兩個網址Y幫手

def print_content_start(page, shift=4) 
    result = '' 
    doc = Nokogiri::HTML(page.content) 
    doc.css('div,p').each_with_index do |node, i| 
     break if i == shift 
     result += node.to_s 
    end 
    result 
    end 

    def print_content_end(page, shift=4) 
    result = '' 
    doc = Nokogiri::HTML(page.content) 
    doc.css('div,p').drop(shift).each do |node| 
     result += node.to_s 
    end 
    result 
    end 

如果有人知道一個更好的辦法,請讓我知道完蛋了!