ybernet-uAjRD0nVeow@public.gmane.org
2008-Nov-15 00:04 UTC
how to determine if a database column has been set?
lets say that i have a column in one of my tables: initial_odometer_reading (type is decimal), which for any particular record, may or may not be set by the user of the application. somewhere in my code, i want to search for those records for which the user has set/initialized this column. how do i do so, properly? i can set the default value in the ''create table'' method to be ''-1'' and then query for ''-1'', this works, but doesn''t seem right. i want to do the right thing here. what is the conventional way to solve this? note that zero is a legitimate value to which the user may set the column. thanks, yoram --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
The database query that you want is foo.odometer IS NULL (for when it has not been set) or IS NOT NULL (for when it has ben set). You could google ActiveRecord and "IS NULL" and see if you find hits. I *think* the code does this correctly. e.g. Table.find(:all, :conditions => { :odomiter => nil }) Try it, look at the log and see if you get the right query. Last resort, you can do the SELECT query yourself. -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Also, if you are interested. NULL values in database tables, by the super DB guys like Date and Pascal, are frowned upon. They create "three way logic" which often yields unexpected results and is not part of boolean algebra and is outside of the theory that relational DB is based upon. They would argue until they passed out that judicious use of default values is a far better way to go. -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---