In Rails 3 the only way to get for content captured with the content_for method in a view is to call yield from within a view. However, sometimes is it useful to get to this data from within a helper (for instance to provide a default value). Calling yield from within the helper method won't work, and accessing the @_content_for variable directly is not encouraged.
Proposed solution: add a captured_content_for method so helper methods can legitimately access captured content. Add to /action_pack/lib/ action_view/helpers/capture_helper.rb
# Get content previously captured with +content_for+. This is the same as calling # +yield+ inside a template except that this method can be used inside helper methods. def captured_content_for(name) @_content_for(name) end
Lighthouse ticket: #4537 Add method to get to content captured with content_for from helper methods - Ruby on Rails - rails