2016-06-07 14 views
0

如果我有被渲染为以下元素的视图:Ruby on Rails的:特定元素的距离拉HTML串控制器内

查看

<div id="content"> 
    <!-- More HTML --> 
</div> 

在我的控制,是有这样的一种方法,我可以使用其ID检索特定元素的HTML字符串?例如,它可能看起来像:

def myview 

    contentString = get_html_element_string("content") 

    ... 
end 

其中contentString将包含一个字符串值<div id="content"> <!-- More HTML --> </div>

我知道您可以使用render_to_string来获取整个呈现页面的HTML,但我宁愿不解析。

+0

控制器实际上就是动作列表。因此,您可以传递元素值的方式之一就是使用带post方法的表单,其中提交的表单将params传递到您的操作中。那些到达的参数你简单的捕获和使用params [:something_from_your_form]。我不确定你想做什么,可能没有必要传递给你的行为,并进一步到后端,但是有一些你仍然想保留在你的前端层,因此你可以更好地使用jQuery左右.. – Evgeny

回答

0

其实我最后决定将我需要的内部分的HTML和控制器内渲染它(和稍后再使用<%= render partial: "content_partial" %>)。

_content_partial.html.erb

<div id="content"> 
    <!-- More HTML --> 
    <%= @my_value.function %> 
</div> 

我的控制器中:

def myview 

    contentString = render_to_string(:partial => 'content_partial', :layout => false, :locals => {:my_object => @my_value}) 

    ... 
end 
0

在控制器中事实后访问呈现的内容是不可能的。

我会建议创建一个帮助函数来创建内部的content div内容。如果您需要,请致电myview

以下职位提供了一些选项调用控制器内的辅助:在我看来 Rails - How to use a Helper Inside a Controller