DRY,如何避免导轨中的重复方法



我在我的课堂上这样做

Salesforce::Adapters::Person::MAPPINGS.invert.keys.each do |key|
  delegate key.to_sym,
         "#{key}=".to_sym,
         to: :person, 
         prefix: true
end
Salesforce::Adapters::EmergencyContact::MAPPINGS.invert.keys.each do |key|
    delegate key.to_sym,
         "#{key}=".to_sym,
         to: :emergency_contact, 
         prefix: true
end

我想干,知道我该怎么做吗?我试图在模块的类内迭代,但没有成功。

你可以试试const_get

def dry_class module, type
  Object.const_get("Salesforce::Adapters::#{module}")::MAPPINGS.invert.keys.each do |key|
    delegate key.to_sym,
    "#{key}=".to_sym,
    to: type, 
    prefix: true
  end
end

相关内容

最新更新