如何循环访问一组动态记录模型?
问题描述:
我有三个模型(和越来越多):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
但不知道该怎么做......谢谢!
答
有多种方式来攻击它,但最简单的可能是以下几点:
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
这是一个有点清洁,但是这一切都归结为偏好。
酷,是的,我喜欢第二种方式更好,如果它的工作......谢谢你会检查出来。 – Angela 2010-10-15 20:08:50
甜美,这看起来像是它......谢谢+1 – Angela 2010-10-15 20:10:16