Ticket #2291: component_flash_fix.2322.diff
| File component_flash_fix.2322.diff, 2.6 kB (added by rick, 3 years ago) |
|---|
-
actionpack/test/controller/components_test.rb
old new 25 25 render_text "Yes, ma'am" 26 26 end 27 27 28 def set_flash 29 render_component(:controller => 'callee', :action => 'set_flash') 30 end 31 32 def use_flash 33 render_component(:controller => 'callee', :action => 'use_flash') 34 end 35 28 36 def rescue_action(e) raise end 29 37 end 30 38 … … 36 44 def blowing_up 37 45 render_text "It's game over, man, just game over, man!", "500 Internal Server Error" 38 46 end 47 48 def set_flash 49 flash[:notice] = 'My stoney baby' 50 render :text => 'flash is set' 51 end 52 53 def use_flash 54 render :text => flash[:notice] 55 end 39 56 40 57 def rescue_action(e) raise end 41 58 end … … 71 88 get :internal_caller 72 89 assert_equal "Are you there? Yes, ma'am", @response.body 73 90 end 91 92 def test_flash 93 get :set_flash 94 assert_equal 'My stoney baby', flash[:notice] 95 get :use_flash 96 assert_equal 'My stoney baby', @response.body 97 end 74 98 end -
actionpack/lib/action_controller/components.rb
old new 43 43 44 44 private 45 45 def component_response(options, reuse_response = true) 46 component_class(options).process(request_for_component(options), reuse_response ? @response : response_for_component )46 component_class(options).process(request_for_component(options), reuse_response ? @response : response_for_component, true) 47 47 end 48 48 49 49 def component_class(options) -
actionpack/lib/action_controller/flash.rb
old new 28 28 super 29 29 base.before_filter(:fire_flash) 30 30 base.after_filter(:sweep_flash) 31 class << base 32 def process(request, response, keep_flash = false) 33 ctrl = new 34 if keep_flash 35 class << ctrl 36 private 37 def fire_flash 38 end 39 40 def sweep_flash 41 end 42 end 43 end 44 ctrl.process(request, response) 45 end 46 end 31 47 end 32 48 33 49 class FlashNow #:nodoc: