Another issue that needs a patch is that the :checked attribute does not
work in radio_button. This is referenced here:
http://merb.lighthouseapp.com/projects/7433/tickets/1131-radio_group-and-possibly-other-helpers-modifies-the-arguments-passed-to-it

It can be monkey_patched around as follows:

module Merb::Helpers::Form::Builder
    class Base
      def considered_true?(value)
        value && value != "false" && value != "0" && value != 0
      end

      def update_unbound_controls(attrs, type)
        case type
        when "checkbox"
          update_unbound_check_box(attrs)
        when "file"
          @multipart = true
        end

        attrs[:disabled] ? attrs[:disabled] = "disabled" :
attrs.delete(:disabled)
        attrs[:checked]  ? attrs[:checked]  = "checked"  :
attrs.delete(:checked)
      end
    end
  end

Do you think I need to file a new bug for this? My patch above is not
perfect, since it overlaps the handling for checkboxes, so I would need to
tweak it a bit before submitting it.

..tony..

On Wed, Jan 28, 2009 at 2:34 PM, Roy Wright <[email protected]> wrote:

>
> +1
>
> It would be nice not to have to manually patch this every release...
>
> TIA,
> Roy
>
> On Jan 28, 2009, at 3:18 PM, Jacques Crocker wrote:
>
> >
> > +1
> >
> > Patch looks good. Very simple check for "false", but its needed for
> > checkboxes to work correctly. Might be useful to throw in a few specs
> > for it (should be simple).
> >
> > May be that Yehuda didn't see it (it wasn't assigned to anyone). I
> > went ahead and fixed that on lighthouse
> >
> > Please merge this patch into 1.0.8.2 if possible.
> >
> >
> > On Jan 28, 12:25 pm, Tony Mann <[email protected]> wrote:
> >> Well, we are not making enough noise, since bound checkboxes
> >> *still* do not
> >> work in 1.0.8.1. What will it take to get this patch in?
> >> ..tony..
> >>
> >> On Sat, Jan 10, 2009 at 6:53 AM, Ted Han <[email protected]> wrote:
> >>
> >>> It was probably overlooked :\
> >>
> >>> Let's see about making enough noise to get it included... :)
> >>
> >>> -knowtheory
> >>
> >>> On Wed, Jan 7, 2009 at 3:50 PM, phatmann <[email protected]>
> >>> wrote:
> >>
> >>>> I see that this patch did not make it into 1.0.6 nor 1.0.7. Any
> >>>> idea
> >>>> why? As is, bound check_boxes and radio_buttons are essentially
> >>>> broken.
> >>
> >>>> ..tony..
> >>
> >>>> On Dec 17 2008, 7:11 pm, cult hero <[email protected]> wrote:
> >>>>> I submitted the patch successfully:
> >>
> >>>>>
> http://merb.lighthouseapp.com/projects/7433-merb/tickets/1138-patch-f
> >>>>> .
> >>> ..
> >>
> >>>>> On Dec 17, 6:43 pm, cult hero <[email protected]> wrote:
> >>
> >>>>>> I've figured out what's causing the problem with checkboxes. It
> >>>>>> appears to be unrelated to the select and radio problems. (I'll
> >>>>>> look
> >>>>>> into that later since I'm playing with the form stuff now
> >>>>>> anyway.) In
> >>>>>> the meantime, here's the problem:
> >>
> >>>>>> File: merb-helpers/lib/merb-helpers/form/builders.rb
> >>
> >>>>>> def considered_true?(value)
> >>>>>>   value && value != "0" && value != 0
> >>>>>> end
> >>
> >>>>>> I noticed considered_true? was returning true when it didn't
> >>>>>> seem like
> >>>>>> it should. I checked the value of "value" being fed to
> >>>>>> considered_true? by update_bound_check_box and it was "false"
> >>>>>> when it
> >>>>>> should have been. So it appeared that considered_true?(false) was
> >>>>>> returning true, which made no sense. However, looking further I
> >>>>>> got
> >>>>>> this output:
> >>
> >>>>>> value: false
> >>>>>> value.class: String
> >>>>>> value && value != "0" && value != 0: true
> >>>>>> value != "0": true
> >>>>>> value != 0: true
> >>
> >>>>>> I presumed "value" was a boolean false. Turns out, it's a
> >>>>>> String with
> >>>>>> the value "false."
> >>
> >>>>>> So, one possible solution is:
> >>
> >>>>>> def considered_true?(value)
> >>>>>>   value && value != "false" && value != "0" && value != 0
> >>>>>> end
> >>
> >>>>>> This works fine for me. However, what I don't know is whether
> >>>>>> value,
> >>>>>> which is retrieved from "val = control_value(method)" is
> >>>>>> supposed to
> >>>>>> be "false" (String) or false (FalseClass). Looking at
> >>>>>> control_value it
> >>>>>> appears to deliberately return a string. From what I can tell,
> >>>>>> the
> >>>>>> above solution works though since considered_true? is only called
> >>>>>> inside update_bound_check_box, so it wouldn't affect a text
> >>>>>> field with
> >>>>>> the value "false" in any weird manner.
> >>
> >>>>>> I've never submitted a patch before, but I found a guide on
> >>>>>> using git
> >>>>>> and I'm going to try in just a few minutes. I'm pretty new to
> >>>>>> this
> >>>>>> whole git thing!
> >>
> >>>>>> On Dec 17, 8:41 am, cult hero <[email protected]> wrote:
> >>
> >>>>>>> I hope it's a bug. I'll feel better about my own skill level
> >>>>>>> if it
> >>> is!
> >>
> >>>>>>> I try and limit the number of questions I ask around here in a
> >>>>>>> day
> >>> and
> >>>>>>> I'd already hit my quota just before I noticed this problem last
> >>>>>>> night. I'm hesitant to start filing any bug reports until I
> >>>>>>> get some
> >>>>>>> level of confirmation here or have a higher level of
> >>>>>>> competence with
> >>>>>>> Merb.
> >>
> >>>>>>> On Dec 17, 12:14 am, "Yehuda Katz" <[email protected]> wrote:
> >>
> >>>>>>>> This potentially sounds like a bug. I'll try and take a look
> >>>>>>>> at it
> >>> in the
> >>>>>>>> morning when I get in to work. Someone else reported a similar
> >>> issue with
> >>>>>>>> radio_group to me this morning so I wonder if there's something
> >>> I'm missing
> >>>>>>>> here.
> >>>>>>>> -- Yehuda
> >>
> >>>>>>>> On Tue, Dec 16, 2008 at 10:55 PM, cult hero <
> >>> [email protected]> wrote:
> >>
> >>>>>>>>> I started making my first forms today and things seem smooth
> >>> except...
> >>
> >>>>>>>>> The check_box field makes no sense to me at all. Here is the
> >>> code it
> >>>>>>>>> produces:
> >>
> >>>>>>>>> <input type="hidden" class="hidden" name="person[is_active]"
> >>> value="0"/
> >>>>>>>>>> <input type="checkbox" class="checkbox"
> >>> name="person[is_active]"
> >>>>>>>>> value="1" checked="checked" id="person_is_active"/><label
> >>>>>>>>> for="person_is_active">Is name?: </label>
> >>
> >>>>>>>>> That does make sense. The trouble is, no matter what the value
> >>> of
> >>>>>>>>> "is_active" is for @person, the box is ALWAYS checked. I even
> >>> tried
> >>>>>>>>> adding :boolean => @person.is_active to see if that would do
> >>>>>>>>> it,
> >>> but
> >>>>>>>>> it's still checked. It works when the checkbox isn't bound
> >>>>>>>>> to a
> >>> model,
> >>>>>>>>> but when it is I get this problem. To make sure I wasn't
> >>>>>>>>> crazy I
> >>> even
> >>>>>>>>> have the value of @person.is_active display at the top of the
> >>> form.
> >>>>>>>>> True or false, the checkbox is always checked.
> >>
> >>>>>>>>> Is this a bug or am I just missing something ridiculously
> >>> simple?
> >>
> >>>>>>>> --
> >>>>>>>> Yehuda Katz
> >>>>>>>> Developer | Engine Yard
> >>>>>>>> (ph) 718.877.1325
> > >
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"merb" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [email protected]
For more options, visit this group at http://groups.google.com/group/merb?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to