2011-08-05 37 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

相关问题