This should also be fixed in the next release of Rails 3.0.x


On 09/06/2011, at 3:21, Konstantin Shababov <[email protected]> wrote:

> you can fix this using output_buffer = output_buffer.slice(pos..-1) instead 
> of using slice!
> 
> -- 
> Konstantin Shababov
> http://github.com/etehtsea
> Sent with Sparrow
> On Wednesday, June 8, 2011 at 7:10 PM, Christoph Schiessl wrote:
> 
>> After upgrading from 3.0.7 to 3.0.8, I get the following error:
>> 
>> activesupport (3.0.8) lib/active_support/core_ext/string/
>> output_safety.rb:114:in `slice!'
>> actionpack (3.0.8) lib/action_view/helpers/cache_helper.rb:56:in
>> `fragment_for'
>> actionpack (3.0.8) lib/action_view/helpers/cache_helper.rb:38:in
>> `cache'
>> app/views/customers/index.html.erb:18:in
>> `_app_views_customers_index_html_erb__218860319__625647498_0'
>> ...
>> 
>> As far as I can tell, the method `fragment_for` in `CacheHelper` is
>> calling `slice!` on a `SafeBuffer` object.
>> 
>> def fragment_for(name = {}, options = nil, &block) #:nodoc:
>> if controller.fragment_exist?(name, options)
>> controller.read_fragment(name, options)
>> else
>> # VIEW TODO: Make #capture usable outside of ERB
>> # This dance is needed because Builder can't use capture
>> pos = output_buffer.length
>> yield
>> fragment = output_buffer.slice!(pos..-1) ##
>> PROBLEM
>> controller.write_fragment(name, fragment, options)
>> end
>> end
>> 
>> However, `slice!` is also one of the unsafe methods defined in
>> `ActiveSupport::SafeBuffer`. Therefore an exception is thrown.
>> 
>> Best regards,
>> Christoph Schiessl
>> 
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Ruby on Rails: Core" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to 
>> [email protected].
>> For more options, visit this group at 
>> http://groups.google.com/group/rubyonrails-core?hl=en.
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Ruby on Rails: Core" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/rubyonrails-core?hl=en.

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-core?hl=en.

Reply via email to