Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Ticket #8076: render_partial_with_format_extension_fix.diff

File render_partial_with_format_extension_fix.diff, 2.3 kB (added by norbert, 3 years ago)
  • actionpack/test/controller/render_test.rb

    old new  
    135135  def partial 
    136136    render :partial => 'partial' 
    137137  end 
     138 
     139  def partial_dot_html 
     140    render :partial => 'partial.html.erb' 
     141  end 
    138142   
    139143  def partial_as_rjs 
    140144    render :update do |page| 
     
    393397    assert_equal 'partial html', @response.body 
    394398  end 
    395399 
     400  def test_should_render_html_partial_with_dot 
     401    get :partial_dot_html 
     402    assert_equal 'partial html', @response.body 
     403  end 
     404 
    396405  def test_should_render_html_formatted_partial_with_rjs 
    397406    xhr :get, :partial_as_rjs 
    398407    assert_equal %(Element.replace("foo", "partial html");), @response.body 
  • actionpack/lib/action_view/partials.rb

    old new  
    110110      end 
    111111 
    112112      def partial_counter_name(partial_name) 
    113         "#{partial_name.split('/').last}_counter".intern 
     113        partial_variable_name("#{partial_name.split('/').last}_counter") 
    114114      end 
    115115 
     116      def partial_variable_name(partial_name) 
     117        partial_name.split('.').first.intern 
     118      end 
     119 
    116120      def extracting_object(partial_name, local_assigns, deprecated_local_assigns) 
     121        variable_name = partial_variable_name(partial_name) 
    117122        if local_assigns.is_a?(Hash) || local_assigns.nil? 
    118           controller.instance_variable_get("@#{partial_name}") 
     123          controller.instance_variable_get("@#{variable_name}") 
    119124        else 
    120125          # deprecated form where object could be passed in as second parameter 
    121126          local_assigns 
     
    132137      end 
    133138 
    134139      def add_object_to_local_assigns!(partial_name, local_assigns, object) 
    135         local_assigns[partial_name.intern] ||= 
     140        variable_name = partial_variable_name(partial_name) 
     141        local_assigns[variable_name] ||= 
    136142          if object.is_a?(ActionView::Base::ObjectWrapper) 
    137143            object.value 
    138144          else 
    139145            object 
    140           end || controller.instance_variable_get("@#{partial_name}") 
     146          end || controller.instance_variable_get("@#{variable_name}") 
    141147      end 
    142148  end 
    143149end