如何呈现字符串的部分内容? [英] How do I render a partial to a string?
问题描述
如何呈现字符串的部分内容,以便可以将其作为JSON响应的一部分包含在内?我必须将其放入JSON响应中,以便为可能的错误消息留出空间.以下代码给出了500个服务器错误.如果我仅使用普通的render
,那么令人惊讶的是它可以工作.好吧,它只发回无法解析为Javascript的纯HTML.
How do I render a partial to a string, so I can include it as part of a JSON response? I have to put it into a JSON response to allow room for a possible error message. The following code gives a 500 server error. If I use just a plain render
, then surprisingly it works. Well, it send back just plain HTML which cannot be parsed as Javascript.
respond_to do |format|
format.html { redirect_to post_path(post) }
format.js {
{
error: "",
content: (render_to_string partial: '/comments/comment', locals: {comment: comment}, layout: false )
}
}
end
错误
模板丢失 缺少模板注释/创建,应用程序/使用{:locale => [:en] 、: formats => [:js,:html] 、: handlers => [:erb,:builder,:raw,:ruby 、: jbuilder,:haml]}.在以下位置搜索:*"C:/Users/Chloe/workspace/project/app/views"
Template is missing Missing template comments/create, application/create with {:locale=>[:en], :formats=>[:js, :html], :handlers=>[:erb, :builder, :raw, :ruby, :jbuilder, :haml]}. Searched in: * "C:/Users/Chloe/workspace/project/app/views"
有效,但发送回纯HTML
render partial: '/comments/comment', locals: {comment: comment}, layout: false
推荐答案
好的,我明白了.我必须添加render json:
.我以为我曾经尝试过,这给了我一个双重渲染错误.我想当您render_to_string
时,可以有多个渲染器.
Ok I got it. I had to add render json:
. I thought I had tried that before and it gave me a double render error. I guess when you render_to_string
, then it's ok to have more than one render.
respond_to do |format|
format.html { redirect_to post_path(post) }
format.js {
render json: {
error: flash[:error],
content: (render_to_string partial: '/comments/comment', locals: {comment: comment}, layout: false )
}
}
end
这篇关于如何呈现字符串的部分内容?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!