在代码下方使用部分视图的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 /应用/视图”):
答案 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])