Does anyone know why in Rails 4.x, the ||= operator doesn't seem to work properly with defaulting Strings.
fails:
self.scheme ||= "https"
with an error of:
NoMethodError:
undefined method `scheme' for
works:
after_initialize :apply_defaults
def apply_defaults
#remote Docker daemons use HTTPS by default
self.scheme
#default port for docker daemons
self.port ||= 2376
end
#for some reason, can't use ||= and need a real method
def scheme
self[:scheme] || 'https'
end
why is it that to have a default string I need a method, but the port (integer) does not?