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?
 
    