如何将视图的渲染响应包含在另一个视图中,但是转储。
像我目前正在使用的那样:css: "<%= render :partial => "myurl/blah", :formats=> [:css], :layout => false %>",
(在渲染的js文件中,我正在创建一个json对象并包含其他各种文件..)
这里的回答是这样的:
css: "#utilities {width: 800px;}
#utilities p,
#utilities ul {margin-bottom: 1em;}
#utilities_scroll {height:500px; padding:0 10px 0 10px; overflow:scroll;}
#utilities_scroll_inner {width: 733px;}
#utilities-search-form {margin-top: 20px;} .. ."
但是我想要像这样转储它:
css: "#utilities {width: 800px;}\n#utilities p,\n#utilities ul {margin-bottom: .. "
修改
回应:
css : <%= eval("render :partial => 'myurl/blah', :formats=> [:css], :layout => false").dump %>
它正在倾销html但略有不正确的方式,
请参阅rails控制台:
a = "fdjasdlkfs 32$#%$#^$%^<>tv5$ ;'" # => "fdjasdlkfs 32$#%$#^$%^<>tv5$ ;'"
a.dump #=> "\"fdjasdlkfs 32$#%$#^$%^<>tv5$ ;'\""
这是正确的方法,但是,在我所包含的行的html中,响应如下:
(如果我在myurl / blah.css文件中有:"fdjasdlkfs 32$#%$#^$%^<>tv5$ ;'"
结果是
css : "\"fdjasdlkfs 32$#%$#^$%^<>tv5$ ;'\"\n"
看到差异,< > "
在两种情况下都有不同的变换..(我需要按照第一种格式“
答案 0 :(得分:1)
使用eval。我之前从未尝试过,但它会起作用。
尝试:
css : <%= eval("render :partial => 'myurl/blah', :formats=> [:css], :layout => false") %>
答案 1 :(得分:0)
感谢Vik的努力......但经过长时间的搜索,我最终得到了:
css : <%= JSON.dump(render :partial => "abc/url", :formats=> [:css], :layout => false).html_safe %>
css: <%= eval("render :partial => 'blah/blah', :formats=> [:css], :layout => false").dump.html_safe%>,
css: <%= eval("render :partial => 'blah/blah', :formats=> [:css], :layout => false").to_json.html_safe%>,
作为问题的解决方案.... 我刚开始使用Ruby,rails并发现奇怪的是没有关于所有这些小东西的正确文档...希望这有助于某人......
然而在我的情况下,我最终用于我的解决方案: (问题有点不同) 在控制器中:
@cssrender = JSON.dump(render_to_string(:file => "blah/blah", :layout => false , :formats =>[:css]))
仅在css :<%=@cssrender.html_safe%>