You can test for params[:whatever].blank? which is essentially [AFAIK] nil entries in a form.
RSL
You can test for params[:whatever].blank? which is essentially [AFAIK] nil entries in a form.
RSL
It already comes through the form as an empty string. Perhaps something like
object.attribute = nil if params[:attribute].blank?
is what you’re looking for. I personally don’t worry about whether it’s saving an empty string or a nil value and instead check for object#nil? or object#blank? [in that order] when testing an attribute’s value.
It just occurred to me that this might not be the most Ruby way. Anyone else?
RSL
Taylor Strait wrote:
I'm trying avoid adding "" to fields on @whatever.save
What about doing it at the object level? Something like:
class Foo < ActiveRecord::Base def bar=(bar) bar = nil if bar.blank? self[:bar] = bar end end
Eric
Precisely. And the before_save callback is a great place to put that!
RSL
I might not do params[:each] since there are non-field-inputted params in there [like :id, etc] as well as the fact that only text-field inputs return empty strings. Checkboxes return 0 and 1, which might need to be handled as true/false instead of nil. Calling them out by name is probably a better choice.
RSL