2011-08-05 74 views
0

我需要一種從rails VIEW中選擇HTML片段的方法。Rails - 從視圖中讀取HTML片段

我需要的方法與ActionDispatch :: Assertions :: SelectorAssertions :: css_select方法完全相同,但我需要它進入VIEW層。

我找到了HTML :: Selector類,但無法使其功能如我所願。

任何想法? 最好的問候, 邁克

+0

確定的這個工作的例子,我已經partializing的解決了我的問題HTML片段並將其作爲「渲染:部分...」讀取。無論如何,我很好奇將css_select方法直接包含在CONTROLLER/VIEW圖層中。那麼,有什麼想法? –

回答

0

這原來是方式較爲凌亂比它需要的,但在你的類:

require 'action_dispatch/testing/assertions' 
require 'action_dispatch/testing/assertions/selector' 
include ActionDispatch::Assertions::SelectorAssertion 
require 'action_controller/vendor/html-scanner/html/tokenizer' 
require 'action_controller/vendor/html-scanner/html/document' 

有了這個地方,你可以這樣解析您的@raw HTML:

@selected = HTML::Document.new(@raw).root.children 

@selected設置,你可以撥打css_selected

注:使用Rails 2.x中,替換第一個三行:

require 'action_controller/assertions/selector_assertions' 
include ActionController::Assertions::SelectorAssertions 

你可以找到https://github.com/rubys/gorp/blob/master/lib/gorp/test.rb

相關問題