导轨渲染行动不同的格式

说我有,我想响应Ajax请求的应用程序#搜索方法。 我里面JS视图(app /视图/应用/ search.js.erb)我想渲染HTML视图:

$("#content").html( escape_javascript( render( :action => 'search', :format => 'html' ) ) ); $("#title").html( "Title" );

我知道我可以搬东西到部分并呈现在HTML和JS两种意见,但问题是我有需要以这种方式应对许多不同的动作和我宁愿没有创造一堆1线视图文件只呈现部分。

有什么办法明确地渲染一个特定格式的行动,抢content_for的不同部分呢? 因此,对于上面的例子中,我可以设置#title的HTML与content_for返回:标题或什么的。

--------------解决方案-------------

我不知道输出一串HTML成JS来源是一个伟大的设计,但是这不是你的问题 - 而我不得不做类似的事情由模板呈现到XML输出​​HTML片段,我考虑更多的合理的:)。

不管怎样,有你的问题中几件事情。

它从版本更改为Rails的版本,但在Rails的4.x的,我认为这应该工作,你很接近,但由于某些原因必须:formats (复数)与数组。 而且还有其他一些无关的东西不就在你的例子,一样需要再培训局<%=标签,并把JavaScript的字符串转换为引号。

var str = "<%= escape_javascript( render( :partial => 'partial_name', :formats => ['html'] ) ) %>";

我认为。 我还没有试过,正是自己。

请注意,仍然是一个部分,虽然。 你想从另一个模板内呈现一个完整的(而不是局部的)模板 - 我敢肯定Rails会不会让你这样做。 它也是之前一直有点讨厌我。 但事实上,即使是呈现从JS部分的HTML部分(“something.html.erb”),您需要使用:formats => []招,或者Rails将坚持“哎,我想找到一个 js部分使用该名称,我们在JS模式的人!“。

但正如上文应该从JS模板渲染_partial_name.html.erb。 这仍然是可能不是一个伟大的设计。

希望这可以帮助。

分类:Ruby on Rails的 时间:2015-03-15 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.328 (s). 10 q(s)