У меня есть следующий код:Scope и «я» ключевое слово
def self.ftoc(temp_in_fahrenheit)
(temp_in_fahrenheit - 32) * 5.0/9.0
end
def self.ctof(temp_in_celcius)
(temp_in_celcius * 9.0/5.0) + 32
end
def calculate_temperatures
@f = Temperature.ctof(@c) if (@f == nil && @c != nil)
@c = Temperature.ftoc(@f) if (@c == nil && @f != nil)
end
Это прекрасно работает. Однако, если я изменил код
def calculate_temperatures
@f = self.ctof(@c) if (@f == nil && @c != nil)
@c = self.ftoc(@f) if (@c == nil && @f != nil)
end
Я получаю ошибку
undefined method 'ftoc' for #<Temperature:0x000000025486a0 @f=50>
я бы подумал, что «я», как экземпляр класса температуры, будет иметь возможность использовать CTOF/ftoc, но это не так. Может ли кто-нибудь помочь мне понять, что мне не хватает?
Большое спасибо.
Спасибо! Я собираюсь ответить на этот вопрос, потому что мое замешательство связано с тем, что «я» меняется в зависимости от того, где он используется, и это помогло мне понять этот момент. – mikeappell