从ruby中的类名列表中提取对象的属性

时间:2016-12-22 14:06:28

标签: ruby-on-rails ruby

我有一个类名列表:obj_list = ["Fruit", "Vegetable"] 我需要迭代它们并找到color属性设置为red的所有对象(假设水果和蔬菜都具有此属性)。

2 个答案:

答案 0 :(得分:0)

这会将Fruitcolor: 'red'对象列表@vegetablesVegetable color: 'red'匹配obj_list = ["Fruit", "Vegetable"] obj_list.each do |c| list_name = "@#{c.downcase}s" list_objects = Object.const_get(c).where(color: 'red') instance_variable_set(list_name, list_objects) end @fruits #=> Fruit.where(color: 'red') @vegetables #=> Vegetable.where(color: 'red') Update table set col = SUBSTRING(col,1,CHARINDEX('LIKE',col,0)-1) where column like '%Like%' >

UPDATE sonarqube_production.users SET user_local = 0, external_identity_provider = 'ldap' WHERE id != 'admin';

希望这会有所帮助

答案 1 :(得分:0)

你也可以这样做:

obj_list = ["Fruit", "Vegetable"]

obj_list.each_with_object(Array.new){ |object, array| array.push(object.constantize.send(:where, {color: 'red'})) }

它将是包含水果和蔬菜的Active Record关系数组。