2016-03-24 2 views
0

У меня есть модель отношения класса «хаб и спица», где один класс является центром, и ему нужно знать о произвольном числе спиц-классов. Я проектирую класс Hub, чтобы быть частью драгоценного камня, и я хочу, чтобы спицы определялись пользователем этого драгоценного камня. Из-за этого я не могу определить спицы внутри класса хаба, я должен оставить его пользователю, чтобы определить и зарегистрировать спицу. Я попробовал это, не повезло:Ruby/Rails - метод класса вызова из определения внешнего класса

# models/hub.rb 
class Hub 
    @@spokes = [] 

    def self.spokes 
    @@spokes 
    end 

    def self.register_spoke spoke 
    @@spokes << spoke 
    end 
end 

# models/spoke.rb 
class Spoke 
end 

Hub.register_spoke 'Spoke' 

Это работает, если вы просто запустить его, но я хочу эти отношения, чтобы установить на время загрузки в приложении Rails, и я не могу получить, что работать. Помогите?

+0

- hub.rb или что-то еще, что этот код находится под папкой моделей в вашем приложении Rails? – slindsey3000

+0

yes, а вызов «register_spoke» находится внизу слова. Rb –

+0

Я поместил этот код в приложение Rails и работал как ожидалось. – slindsey3000

ответ

2

Вы упомянули, что хотите сделать Хаб частью драгоценного камня. В этом случае вы можете просто определить инициализатор, где вы бы назвали Hub.register_spoke 'Spoke'. Вы можете сделать это в config/initializers/hub.rb

+0

Да, я просто ответил на @ slindsey3000 с этим. Хороший звонок. –

Смежные вопросы