Я пытаюсь определить набор функций, где я могу проходить в заданных параметрах.Определение методов «на лету» в Ruby/Rails - как установить параметры?
например, как я могу сделать следующее?
>> get_1_type("xxx")
V4_RELATIONSHIP_TYPES=[1=>2,3=>4]
V4_RELATIONSHIP_TYPES.keys.each do |key|
self.class.send(:define_method, "get_#{key}_type".downcase) do
return GuidInfo.get_or_new(PARAMS, V4_RELATIONSHIP_TYPES[key])
end
end
# i can call -> get_1_type("xxx") , and get the function called
спасибо, это здорово! Не возражаете ли вы объяснить, что это на самом деле делает? В частности, я не понимаю, как работает блок. –
Блок используется как тело метода, а параметры блока используются в качестве параметров метода. –
большое спасибо! Все еще получаю голову над блоком, урожай и т. Д. Как вы овладели этим? –