Как я присваиваю значение другому классу, инициализируют параметр в Ruby
class Ubac
def initialize(p_str)
@p_str=p_str
(.....)
end
def method1
(.....)
end
end
class ReqQuote < Ubac
def initialize(p_code)
@code=p_code
# here how do i initialize the @p_str to the value which is returned from the get_data method below.?
end
def get_data(symbol)
(....) # fetch data
data
end
def methodx
(.....)
end
end
Здесь, как я инициализирую @p_str
со значением, которое возвращено от get_data
метод, как будто p_str
был инициализирован от Ubac
класс initialize
?
В этом конкретном случае вы можете просто поместить @ p_str =
в Ubac # initialize
. Однако вы можете вызвать Ubac
initialize
из ReqQuote
, используя super
, например
class ReqQuote < Ubac
def initialize(p_code)
super(get_data(some_symbol))
@code=p_code
end
...
Обычно это хорошая практика, потому что это означает, что любой другой код инициализации, добавленный в Ubac
, также будет выполнен при создании ReqQuote
.