method
compile_template
v1.2.6 -
Show latest stable
- Class:
ActionView::Base
compile_template(extension, template, file_name, local_assigns)private
Compile and evaluate the template's code
# File actionpack/lib/action_view/base.rb, line 510
def compile_template(extension, template, file_name, local_assigns)
render_symbol = assign_method_name(extension, template, file_name)
render_source = create_template_source(extension, template, render_symbol, local_assigns.keys)
line_offset = @@template_args[render_symbol].size
if extension
case extension.to_sym
when :rxml, :rjs
line_offset += 2
end
end
begin
unless file_name.blank?
CompiledTemplates.module_eval(render_source, file_name, -line_offset)
else
CompiledTemplates.module_eval(render_source, 'compiled-template', -line_offset)
end
rescue Exception => e # errors from template code
if logger
logger.debug "ERROR: compiling #{render_symbol} RAISED #{e}"
logger.debug "Function body: #{render_source}"
logger.debug "Backtrace: #{e.backtrace.join("\n")}"
end
raise TemplateError.new(@base_path, file_name || template, @assigns, template, e)
end
@@compile_time[render_symbol] = Time.now
# logger.debug "Compiled template #{file_name || template}\n ==> #{render_symbol}" if logger
end Related methods
- Class methods
- register_template_handler
- Private methods
-
assign_method_name -
assign_variables_from_controller -
cached_template_extension -
compile_template -
compile_template? -
compiled_method_name -
compiled_method_name_file_path_segment -
create_template_source -
delegate_render -
evaluate_assigns -
find_template_extension_for -
full_template_path -
path_and_extension -
read_template_file -
supports_local_assigns? -
template_exists?