rails render_to_string给出部分视图错误

时间:2011-08-16 12:49:26

标签: ruby-on-rails ruby views partial-views

在代码下方使用部分视图的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]}   “/家庭/拉梅什/工程/ XXX /应用/视图”   “/家/拉梅什/工作/ XXX /供应商/插件/ asset_packager /应用/视图”):

4 个答案:

答案 0 :(得分:10)

尝试

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

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

答案 1 :(得分:2)

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

_biz_new.txt.erb 

- 或 -

businesses/_biz_new.txt.erb

答案 2 :(得分:2)

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

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

答案 3 :(得分:-1)

有类似的问题。

我找到了解决方案:

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