instance method
capture
Ruby on Rails 6.0.6
Since v2.2.3Signature
capture(*args)
The capture method extracts part of a template as a String object. You can then use this object anywhere in your templates, layout, or helpers.
The capture method can be used in ERB templates…
<% @greeting = capture do %> Welcome to my shiny new web page! The date and time is <%= Time.now %> <% end %>
…and Builder (RXML) templates.
@timestamp = capture do "The current timestamp is #{Time.now}." end
You can then use that variable anywhere else. For example:
<html> <head><title><%= @greeting %></title></head> <body> <b><%= @greeting %></b> </body> </html>
The return of capture is the string generated by the block. For Example:
@greeting # => "Welcome to my shiny new web page! The date and time is 2018-09-06 11:09:16 -0500"
Parameters
-
argsrest
Source
# File actionview/lib/action_view/helpers/capture_helper.rb, line 43
def capture(*args)
value = nil
buffer = with_output_buffer { value = yield(*args) }
if (string = buffer.presence || value) && string.is_a?(String)
ERB::Util.html_escape string
end
end
Defined in actionview/lib/action_view/helpers/capture_helper.rb line 43
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActionView::Helpers::CaptureHelper