Module: ActiveScaffold::RenderingHelper
- Defined in:
- lib/active_scaffold/extensions/action_view_rendering.rb
Overview
:nodoc:
Instance Method Summary collapse
-
#render(*args, &block) ⇒ Object
Adds two rendering options.
- #view_stack ⇒ Object
Instance Method Details
#render(*args, &block) ⇒ Object
Adds two rendering options.
render :super
This syntax skips all template overrides and goes directly to the provided ActiveScaffold templates. Useful if you want to wrap an existing template. Just call super!
render :active_scaffold => #ActiveScaffold::RenderingHelper.controllercontroller.to_s, options = {}+
Lets you embed an ActiveScaffold by referencing the controller where it’s configured.
You may specify options for the embedded scaffold. These constraints have three effects:
* the scaffold's only displays records matching the constraint
* all new records created will be assigned the constrained values
* constrained columns will be hidden (they're pretty boring at this point)
You may also specify options for the embedded scaffold. These only do 1/3 of what constraints do (they only limit search results). Any format accepted by ActiveRecord::Base.find is valid.
Defining options lets you completely customize the list title for the embedded scaffold.
options force to load embedded scaffold with AJAX even when render_component gem is installed.
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/active_scaffold/extensions/action_view_rendering.rb', line 38 def render(*args, &block) if args.first.is_a?(Hash) && args.first[:active_scaffold] args.first elsif args.first == :super if @lookup_context # rails 6 @_lookup_context ||= lookup_context else # rails < 6 @_view_paths ||= lookup_context.view_paths.clone @_last_template ||= lookup_context.last_template end result = super (args[1]) @lookup_context = @_lookup_context if @_lookup_context # rails 6 lookup_context.view_paths = @_view_paths if @_view_paths # rails < 6 lookup_context.last_template = @_last_template if @_last_template # rails < 6 result else if @lookup_context # rails 6 @_lookup_context ||= lookup_context else # rails < 6 @_view_paths ||= lookup_context.view_paths.clone end last_template = lookup_context.last_template current_view = if args[0].is_a?(Hash) {locals: args[0][:locals], object: args[0][:object]} else # call is render 'partial', locals_hash {locals: args[1]} end view_stack << current_view if current_view @lookup_context = @_lookup_context if @_lookup_context # rails 6, reset lookup_context in case a view render :super, and then render :partial lookup_context.view_paths = @_view_paths if @_view_paths # rails < 6, reset view_paths in case a view render :super, and then render :partial result = super view_stack.pop if current_view.present? lookup_context.last_template = last_template result end end |
#view_stack ⇒ Object
76 77 78 |
# File 'lib/active_scaffold/extensions/action_view_rendering.rb', line 76 def view_stack @_view_stack ||= [] end |