rails render_to_string giving errors with partial view

丶灬走出姿态 提交于 2019-12-07 11:13:57

问题


I am getting ActionView::MissingTemplate error when using render_to_string method with partial views, below the code

 bizz = render_to_string(:partial => "biz_new",:layout => false)

Even though i have explicitly specified :layout => false, i am getting the MissingTemplate error always.

But render_to_string with normal views works fine in the same project. what could be the reason?

below the stack trace

ActionView::MissingTemplate (Missing partial businesses/biz_new with {:handlers=>[:erb, :rjs, :builder, :rhtml, :rxml], :formats=>[:text, "/"], :locale=>[:en, :en]} in view paths "/home/ramesh/works/xxx/app/views", "/home/ramesh/works/xxx/vendor/plugins/asset_packager/app/views"):


回答1:


Try

 render_to_string("_biz_new", :formats => [:html], :layout => false, :locals => {:biz => @biz})

render_to_string needs the starting underscore and the .html extension.




回答2:


As Mike Kijewski mentioned, you can include the underscore at the beginning of the partial name, but if you use the .html in the end you will get a deprecation warning. A more straightforward way is this:

render_to_string(:partial => "folder_name/_partial_name", :formats => [:html], :layout => false, :locals => {:a_needed_argument_for_the_partial => @arg})



回答3:


It looks like rails is expecting the file to be in format txt. What's the file named ? Try naming it:

_biz_new.txt.erb 

-or-

businesses/_biz_new.txt.erb



回答4:


Had similar issue.

I found a solution:

render_to_string(model, :formats => [:html])



来源:https://stackoverflow.com/questions/7078439/rails-render-to-string-giving-errors-with-partial-view

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!