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