Never been to DZone Snippets before?

Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world

helper to determine if radio/checkbox needs to be checked (See related posts)

I frequently have to use methods such as 'radio_button' and 'check_box_tag' when I don't have an object with a method that will automatically determine the value of the input field. Therefore, I have to check to see if a certain parameter has been passed, and if so, if the parameter's value matches that of the input's value. This method does that.

It's designed to be used in a Rails helper. You can either pass it the object, method, and value (the same parameters as, for example, radio_button) or name and value (the same parameters as radio_button_tag).

def checked?( *args )
  if args.length == 3
    object, method, value = args
    if params[object] && params[object][method] && params[object][method] == value
      'checked'
    end
  elsif args.length == 2
    name, value = args
    if params[name] && params[name] == value
      true
    end
  end
end


Here's an example usage:
<%= radio_button 'person', 'age', '12', :checked => checked?( 'person', 'age', '12' ) %>


If params[:person][:age] exists and it equals '12', then 'checked?' returns 'checked'; otherwise, it returns nil.

Comments on this post

Rendier posts on Jan 21, 2007 at 09:33
Hi,

Where would you add this code? Not on the model (I'm using it without a model using radio_button_tag), and it doesn't seem to work in the controller. Where should I place this?

Thanks
reinier
Rendier posts on Jan 21, 2007 at 12:01
Ok, never mind - just added it into application_helper.rb
kidmarmite posts on Jun 14, 2007 at 22:55
I tried this helper and I can't get it to work. Is anyone else using this successfully who coudl give me a hand???

Thanks,
Sarah
freezzo posts on Aug 03, 2007 at 11:17
I have a solution to this on my blog: http://www.freezzo.com

Its one of the ones on there.

You need to create an account or log in to post comments to this site.


Click here to browse all 4834 code snippets

Related Posts