2010-10-15 45 views
0

我有三个模型(和越来越多):ContactEmail,ContactCall,ContactPostalcard如何循环访问一组动态记录模型?

我想循环通过他们三个经历一个很长的循环。

样品将是以下几点:

import_event = ContactEmail.sugarcrm_is(false) #using searchlogic gem 

第二个循环是:

import_event = ContactCall.sugarcrm_is(false) 

我我猜喜欢的方式做这样的事情:

event_array = ["ContactEmail", "ContactCall", "ContactPostalcard"] 

event_array.each do |event| 
    import_event = event_array.sugarcrm_is(false) 
    ..... 

end 

但不知道该怎么做......谢谢!

回答

2

有多种方式来攻击它,但最简单的可能是以下几点:

event_array = ["ContactEmail", "ContactCall", "ContactPostalcard"] 
event_array.each do |event| 
    import_event = event.constantize.sugarcrm_is(false) 
    ... 
end 

constantize的字符串转换为一个常数。然后你可以进行班级电话会议。这是一个铁轨助手功能。

你也可以只具备阵列所包含的类,而不是字符串:

event_array = [ContactEmail, ContactCall, ContactPostalcard] 
event_array.each do |event| 
    import_event = event.send(:sugarcrm_is, false) 
    ... 
end 

这是一个有点清洁,但是这一切都归结为偏好。

+0

酷,是的,我喜欢第二种方式更好,如果它的工作......谢谢你会检查出来。 – Angela 2010-10-15 20:08:50

+0

甜美,这看起来像是它......谢谢+1 – Angela 2010-10-15 20:10:16