当我在传递布局时渲染布局,例如:
render(:layout => 'layouts/application') {...}
它要求布局为部分(_application.html.erb)。是否可以渲染常规的非局部布局而不在其名称中使用前导下划线?
谢谢!
答案 0 :(得分:1)
如果您传递一个块进行渲染,它将呈现为部分,如下面的代码段所示:
if block_given?
_render_partial(options.merge(:partial => options[:layout]), &block)
Rails 3中的完整呈现方法目前如下所示:
def render(options = {}, locals = {}, &block)
case options
when Hash
if block_given?
_render_partial(options.merge(:partial => options[:layout]), &block)
elsif options.key?(:partial)
_render_partial(options)
else
template = _determine_template(options)
lookup_context.freeze_formats(template.formats, true)
_render_template(template, options[:layout], options)
end
when :update
update_page(&block)
else
_render_partial(:partial => options, :locals => locals)
end
end