我的数据库中有一些对象,我喜欢使用专用的 Hyperstack 视图组件进行渲染。假设我的对象具有name
从 A 到 J 的唯一属性。现在我想循环它们并根据我的对象的, , , ...each
渲染它们,并将我的对象作为参数传递给组件。ComponentA
ComponentB
ComponentC
name
我现在要做的是:
DB_Objects.each do |object|
if object.name == 'A'
ComponentA(data: object)
elsif object.name == 'B'
ComponentB(data: object)
elsif object.name == 'C'
ComponentC(data: object)
elsif ...
我想做的是:
DB_Objects.each do |object|
('Component' + object.name).constantize(data: object)
end
这是伪代码,因为你不能给变量常量化。但它显示了我想做什么。
如何防止手动将对象映射到其视图。