blob: 17fcc2fa02a32e4404f63cc627997b43d9492ad5 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
module ActionController
module ImplicitRender
include BasicImplicitRender
# Renders the template corresponding to the controller action, if it exists.
# The action name, format, and variant are all taken into account.
# For example, the "new" action with an HTML format and variant "phone"
# would try to render the <tt>new.html+phone.erb</tt> template.
#
# If no template is found <tt>ActionController::BasicImplicitRender</tt>'s implementation is called, unless
# a block is passed. In that case, it will override the super implementation.
#
# default_render do
# head 404 # No template was found
# end
def default_render(*args)
if template_exists?(action_name.to_s, _prefixes, variants: request.variant)
render(*args)
else
if block_given?
yield(*args)
else
logger.info "No template found for #{self.class.name}\##{action_name}, rendering head :no_content" if logger
super
end
end
end
def method_for_action(action_name)
super || if template_exists?(action_name.to_s, _prefixes)
"default_render"
end
end
end
end
|