diff options
-rw-r--r-- | actionpack/lib/action_view/template_handlers/compilable.rb | 2 | ||||
-rw-r--r-- | actionpack/test/controller/render_test.rb | 16 |
2 files changed, 17 insertions, 1 deletions
diff --git a/actionpack/lib/action_view/template_handlers/compilable.rb b/actionpack/lib/action_view/template_handlers/compilable.rb index 2446436530..e4a36b8d15 100644 --- a/actionpack/lib/action_view/template_handlers/compilable.rb +++ b/actionpack/lib/action_view/template_handlers/compilable.rb @@ -25,7 +25,7 @@ module ActionView begin file_name = 'compiled-template' if file_name.blank? - ActionView::Base::CompiledTemplates.module_eval(render_source, file_name, line_offset) + ActionView::Base::CompiledTemplates.module_eval(render_source, file_name, -line_offset) rescue Exception => e # errors from template code if @view.logger @view.logger.debug "ERROR: compiling #{render_symbol} RAISED #{e}" diff --git a/actionpack/test/controller/render_test.rb b/actionpack/test/controller/render_test.rb index c258ae216b..4768dffba2 100644 --- a/actionpack/test/controller/render_test.rb +++ b/actionpack/test/controller/render_test.rb @@ -86,6 +86,15 @@ class TestController < ActionController::Base render :xml => "<blah/>", :content_type => "application/atomsvc+xml" end + def render_line_offset + begin + render :inline => '<% raise %>', :locals => {:foo => 'bar'} + rescue => exc + end + line = exc.backtrace.first + render :text => line + end + def heading head :ok end @@ -225,6 +234,13 @@ class RenderTest < Test::Unit::TestCase assert_template "test/hello_world" end + def test_line_offset + get :render_line_offset + line = @response.body + assert(line =~ %r{:(\d+):}) + assert_equal "1", $1 + end + def test_render_with_forward_slash get :render_hello_world_with_forward_slash assert_template "test/hello_world" |