aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--actionpack/lib/action_view/template_handlers/compilable.rb2
-rw-r--r--actionpack/test/controller/render_test.rb16
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"