rails render_to_string给出部分视图错误

在代码下方使用部分视图的render_to_string方法时,我收到ActionView::MissingTemplate错误

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

即使我已经明确指定:layout => false ,我总是得到MissingTemplate错误。

但是普通视图的render_to_string在同一个项目中工作正常。 可能是什么原因?

堆栈跟踪下方

ActionView :: MissingTemplate(缺少部分业务/ biz_new与{:handlers => [:erb,:rjs,:builder,:rhtml,:rxml],:formats => [:text,“ / ”],:locale => [:en,:en]}在视图路径“/ home / ramesh / works / xxx / app / views”,“/ home / ramesh / works / xxx / vendor / plugins / asset_packager / app / views”):

尝试

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

render_to_string需要起始下划线和.html扩展名。

看起来rails希望文件格式为txt。 该文件的名称是什么? 尝试命名它:

 _biz_new.txt.erb 

-要么-

 businesses/_biz_new.txt.erb 

正如Mike Kijewski所提到的,您可以在部分名称的开头包含下划线,但如果您最后使用.html,则会收到弃用警告。 一个更直接的方法是:

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

有类似的问题。

我找到了解决方案:

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