default_render
- 1.0.0
- 1.1.6
- 1.2.6
- 2.0.3
- 2.1.0 (0)
- 2.2.1 (0)
- 2.3.8 (0)
- 3.0.0
- 3.0.9
- 3.1.0
- 3.2.1
- 3.2.8
- 3.2.13
- 4.0.2
- 4.1.8
- 4.2.1
- 4.2.7
- 4.2.9
- 5.0.0.1
- 5.1.7
- 5.2.3
- 6.0.0
- 6.1.3.1
- 6.1.7.7
- 7.0.0
- 7.1.3.2
- 7.1.3.4
- What's this?
RE: 1 render definition for many actions (cleaner)
Hi James,
Unfortunately that doesn’t work if you use the
@zombies
variable in the rendered template, which is why default_render was added as a patch AFAIK. :)
before_filter is called too soon, after_filter is called after an attempt at rendering is made, so default_render is the only option for this as far as I know.
1 render definition for many actions (cleaner)
@arronwashington, you can just call render rather then using instance_eval to overwrite default_render, for example:
before_filter :render_filter, :only => [:zombies, :cool_zombies] def zombies @zombies = Zombie.find(:all) end def cool_zombies @zombies = Zombie.find(:all, :conditions => { :eats_humans => false, :is_hippie => true }) end protected def render_filter # without instance_eval or overwriting default_render render :template => 'zombies/all' end
1 render definition for many actions.
Overriding default_render in especially useful when you have many actions that all render the same thing.
before_filter :render_filter, :only => [:zombies, :cool_zombies] def zombies @zombies = Zombie.find(:all) end def cool_zombies @zombies = Zombie.find(:all, :conditions => { :eats_humans => false, :is_hippie => true }) end protected def render_filter instance_eval do def default_render render :template => 'zombies/all' end end end
RERE: 1 render definition for many actions (cleaner)
@arronwashington. Ah, so that’s the motivation for using default_render, thanks for clearing that up, thanks :)