Skip to main content

How do i save the initial time a boolean went from false to true

Rails • Asked by Dim Dir

I have a boolean column in my table and a datetime related to it. I want to be able to track down when the boolean initially turns true. In the model I have tried

def example
if boolean_field == true
datetime_field = time.now
end
end
but the problem with that is when the boolean is set to true, the datetime_field will keep updating everytime i reload the page or database since the boolean will always be in a constant state of true. I have also try to use rails dirty on it with:

boolean_field_changed?
but that method doesn't seems to update the datetime column at all. P.S i do have a before_save callback on the method.

any help on how i can save the initial time once the boolean_field changes from false to true will be much appreciated. thanks in advance


Hey Dim,

Just check to see if the time field is blank

def example
  if boolean_field == true && datetime_field.blank?
      datetime_field = Time.now
  end
end

Hey Jacob, Thank you so much, can't believe this was going over my head. hahah much appreciated man


Login or Create An Account to join the conversation.

Subscribe to the newsletter

Join 24,647+ developers who get early access to new screencasts, articles, guides, updates, and more.

    By clicking this button, you agree to the GoRails Terms of Service and Privacy Policy.

    More of a social being? We're also on Twitter and YouTube.