как присвоить значение параметру инициализации другого класса из дочернего класса в Ruby - PullRequest
1 голос
/ 06 августа 2010

Как мне присвоить значение параметру инициализации другого класса в 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 было инициализировано из initialize класса *1008*?

Ответы [ 2 ]

2 голосов
/ 06 августа 2010

В этом конкретном случае вы можете просто поставить @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.

0 голосов
/ 06 августа 2010

Вы пишете @p_str = get_data(some_symbol).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...