Thank you Ben for your answer ;-) Do you know when the patch will be available in rails ?
Best regards ;-) Antoine On Jan 13, 2:44 am, Eloy Duran <eloy.de.en...@gmail.com> wrote: > Ah sorry, I shouldn't have assumed edge. My bad. > Thanks Ben > > - Eloy > > On Jan 12, 2009, at 8:30 PM, Ben Symonds wrote: > > > > > This looks likehttp://rails.lighthouseapp.com/projects/8994/tickets/1530 > > (where the test Eloy mentions was added). > > > That patch has not been released yet, which is probably why Antoine is > > seeing it. > > > Ben > > > -----Original Message----- > > From: rubyonrails-core@googlegroups.com > > [mailto:rubyonrails-c...@googlegroups.com] On Behalf Of Eloy Duran > > Sent: 12 January 2009 18:06 > > To: rubyonrails-core@googlegroups.com > > Subject: [Rails-core] Re: tracking_attribute_changes and using default > > checkbox form in the view > > > I checked the test cases (dirty_test.rb), and it contains a test for > > this specifically which passes at least on my env. > > > def test_nullable_integer_zero_to_string_zero_not_marked_as_changed > > pirate = Pirate.new > > pirate.parrot_id = 0 > > pirate.save! > > # other tests > > pirate.parrot_id = '0' > > assert !pirate.changed? > > end > > > Could you check this as well, and otherwise try to extract a small > > piece of code, into a test or sample app, which shows the behaviour? > > If you do so, please file a ticket. > > > - Eloy > > > On 12 jan 2009, at 17:27, Antoine wrote: > > >> You are right, I have a check box helper (by default, it's sending 0 > >> or 1 );-) and also my checkbox is represented in my database by an > >> integer ==> 0 means unchecked , 1 means check. > > >> So my form is sending 0 because my checkbox is unchecked and before > >> sending, the attribute of the object had the same value 0 (I checked > >> in the database to be sure) > > >> So I don't understand why rails tell me the state of this attribute > >> change ? because the attribute is not changing ... 0 ==> 0 > > >> Best regards, > >> Antoine > > >> On Jan 12, 11:18 am, Eloy Duran <eloy.de.en...@gmail.com> wrote: > >>> Sorry, I forgot to add the most important part :) > > >>> What might be happening is that you have a default value of nil > >>> (NULL) > >>> which is then changed to an empty string "". Because the browser > >>> sends > >>> a value because of the gotcha workaround. > > >>> So the easiest solution would be to have a default value for the > >>> field. > >>> Which is something you want to have anyways for a boolean field IMO. > > >>> - Eloy > > >>> On Jan 12, 2009, at 5:14 PM, Eloy Duran wrote: > > >>>> Hi, > > >>>> This was probably because you used the check_box helper, which > >>>> makes > >>>> sure the browser always sends a value. > >>>> See the documentation for the check_box helper: > > >>>> === Gotcha > > >>>> The HTML specification says unchecked check boxes are not > >>>> successful, and thus web browsers do not send them. Unfortunately > >>>> this introduces a gotcha: if an Invoice model has a paid flag, and > >>>> in the form that edits a paid invoice the user unchecks its check > >>>> box, no paid parameter is sent. So, any mass-assignment idiom like > >>>> @invoice.update_attributes(params[:invoice]) > >>>> wouldn't update the flag. > >>>> To prevent this the helper generates a hidden field with the same > >>>> name as the checkbox after the very check box. So, the client > >>>> either > >>>> sends only the hidden field (representing the check box is > >>>> unchecked), or both fields. Since the HTML specification says key/ > >>>> value pairs have to be sent in the same order they appear in the > >>>> form and Rails parameters extraction always gets the first > >>>> occurrence of any given key, that works in ordinary forms. > > >>>> - Eloy > > >>>> On Jan 12, 2009, at 5:05 PM, Antoine wrote: > > >>>>> Dear all, > > >>>>> Maybe i wasn't so clear, excuse me for my english ;-) > > >>>>> My problem is simple .. > >>>>> I didn't change the value of my checkboxes in my form but the core > >>>>> function of rails was saying that the values currently change ! > >>>>> and > >>>>> that's why rails update the values in mysql... and also return a > >>>>> wrong > >>>>> information if i use the new fontions like : attributes_change, > >>>>> attribute_changed?... > > >>>>> I don't understand why ? > > >>>>> thank you for your help ! > >>>>> Antoine > > >>>>> On Jan 8, 3:39 pm, Antoine <antoine.fauc...@gmail.com> wrote: > >>>>>> Dear all, > > >>>>>> I get a stupid bug and i don't know if there is something wrong > >>>>>> in > >>>>>> rails or if it is me doing a stupid thing. > > >>>>>> I have a checkbox called (ass_tg) in my form and when i saved my > >>>>>> form , i write in my model: > > >>>>>> before_save :test > > >>>>>> def test > >>>>>> puts "-----------------------" > >>>>>> puts ass_tg_change > >>>>>> puts "-------------------------" > >>>>>> end > > >>>>>> I should have a nil answer but I get in my console : > > >>>>>> ----------------------- > >>>>>> 0 > >>>>>> 0 > >>>>>> ------------------------- > > >>>>>> And I have this attributes save in the SQL log ..(I didn't change > >>>>>> the > >>>>>> status of the checkbox ...) > > >>>>>> UPDATE `companies` SET .... `ass_tg` = 0,...... WHERE `.... > > >>>>>> It seems like rails don't like integer attributes equal to 0 > >>>>>> when it > >>>>>> execute all the change functions (change, changed?, was ...) ?? > > >>>>>> Best regards, > > >>>>>> Thank you for your help, > >>>>>> Antoine --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Core" group. To post to this group, send email to rubyonrails-core@googlegroups.com To unsubscribe from this group, send email to rubyonrails-core+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-core?hl=en -~----------~----~----~----~------~----~------~--~---