我有三个模型(并且还在增长):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
但不确定该怎么做...谢谢!
答案 0 :(得分:2)
有多种方法可以攻击它,但最简单的方法可能如下:
event_array = ["ContactEmail", "ContactCall", "ContactPostalcard"]
event_array.each do |event|
import_event = event.constantize.sugarcrm_is(false)
...
end
constantize将字符串转换为常量。然后你可以进行类调用。这是一个rails帮助函数。
您也可以让数组包含类而不是字符串:
event_array = [ContactEmail, ContactCall, ContactPostalcard]
event_array.each do |event|
import_event = event.send(:sugarcrm_is, false)
...
end
它有点干净,但这一切都归结为偏好。