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

Changeset 4925

Show
Ignore:
Timestamp:
09/03/06 19:32:31 (2 years ago)
Author:
bitsweat
Message:

radio_button_tag generates unique id attributes. Closes #3353.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/actionpack/CHANGELOG

    r4916 r4925  
    11*SVN* 
     2 
     3* radio_button_tag generates unique id attributes.  #3353 [Bob Silva, somekool@gmail.com] 
    24 
    35* strip_tags returns nil for a blank arg such as nil or "".  #2229 [duncan@whomwah.com] 
  • trunk/actionpack/lib/action_view/helpers/form_tag_helper.rb

    r4374 r4925  
    126126      # Creates a radio button. 
    127127      def radio_button_tag(name, value, checked = false, options = {}) 
    128         html_options = { "type" => "radio", "name" => name, "id" => name, "value" => value }.update(options.stringify_keys) 
     128        pretty_tag_value = value.to_s.gsub(/\s/, "_").gsub(/(?!-)\W/, "").downcase 
     129        html_options = { "type" => "radio", "name" => name, "id" => "#{name}_#{pretty_tag_value}", "value" => value }.update(options.stringify_keys) 
    129130        html_options["checked"] = "checked" if checked 
    130131        tag :input, html_options 
  • trunk/actionpack/test/template/form_tag_helper_test.rb

    r4371 r4925  
    5454  def test_radio_button_tag 
    5555    actual = radio_button_tag "people", "david" 
    56     expected = %(<input id="people" name="people" type="radio" value="david" />) 
     56    expected = %(<input id="people_david" name="people" type="radio" value="david" />) 
    5757    assert_dom_equal expected, actual 
     58 
     59    actual = radio_button_tag("num_people", 5) 
     60    expected = %(<input id="num_people_5" name="num_people" type="radio" value="5" />) 
     61    assert_dom_equal expected, actual 
     62 
     63    actual = radio_button_tag("gender", "m") + radio_button_tag("gender", "f") 
     64    expected = %(<input id="gender_m" name="gender" type="radio" value="m" /><input id="gender_f" name="gender" type="radio" value="f" />) 
     65    assert_dom_equal expected, actual 
     66     
     67    actual = radio_button_tag("opinion", "-1") + radio_button_tag("opinion", "1") 
     68    expected = %(<input id="opinion_-1" name="opinion" type="radio" value="-1" /><input id="opinion_1" name="opinion" type="radio" value="1" />) 
     69    assert_dom_equal expected, actual 
     70     
    5871  end 
    5972