2010-10-15 47 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