如何渲染部分字符串?

时间:2013-12-22 03:39:20

标签: ruby-on-rails json ruby-on-rails-4

如何将部分字符串呈现为字符串,以便将其作为JSON响应的一部分包含在内?我必须将它放入JSON响应中,以便为可能的错误消息留出空间。以下代码给出了500服务器错误。如果我只使用普通的render,那么令人惊讶的是它有效。好吧,它只返回纯HTML,无法解析为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”

正常工作,但发回纯HTML

render partial: '/comments/comment', locals: {comment: comment}, layout: false

1 个答案:

答案 0 :(得分:23)

好的我明白了。我不得不添加render json:。我以为我之前尝试过,它给了我一个双渲染错误。我想当你render_to_string时,可以有多个渲染。

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