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

Ticket #3313: radio_button_generates_unique_id_with_negative_values.2.diff

File radio_button_generates_unique_id_with_negative_values.2.diff, 1.8 kB (added by josh, 2 years ago)

Updated patch against [6372].

  • actionpack/test/template/form_helper_test.rb

    old new  
    125125  def test_radio_button_is_checked_with_integers 
    126126    assert_dom_equal('<input checked="checked" id="post_secret_1" name="post[secret]" type="radio" value="1" />', 
    127127      radio_button("post", "secret", "1") 
    128    ) 
     128    ) 
     129    assert_dom_equal('<input checked="checked" id="post_secret_1" name="post[secret]" type="radio" value="1" />', 
     130      radio_button("post", "secret", 1) 
     131    ) 
     132    assert_dom_equal('<input id="post_secret_-1" name="post[secret]" type="radio" value="-1" />', 
     133      radio_button("post", "secret", -1) 
     134    ) 
    129135  end 
    130    
     136 
    131137  def test_radio_button_respects_passed_in_id 
    132138     assert_dom_equal('<input checked="checked" id="foo" name="post[secret]" type="radio" value="1" />', 
    133139       radio_button("post", "secret", "1", :id=>"foo") 
  • actionpack/lib/action_view/helpers/form_helper.rb

    old new  
    289289          checked = self.class.radio_button_checked?(value(object), tag_value) 
    290290        end 
    291291        options["checked"]  = "checked" if checked 
    292         pretty_tag_value    = tag_value.to_s.gsub(/\s/, "_").gsub(/\W/, "").downcase 
     292        pretty_tag_value    = tag_value.to_s.gsub(/\s/, "_").gsub(/(?!-)\W/, "").downcase 
    293293        options["id"]     ||= defined?(@auto_index) ?              
    294294          "#{@object_name}_#{@auto_index}_#{@method_name}_#{pretty_tag_value}" : 
    295295          "#{@object_name}_#{@method_name}_#{pretty_tag_value}"