获取一组属性以仅生成那些属性的哈希

时间:2015-09-04 20:13:57

标签: ruby-on-rails ruby

我有一个包含许多属性的Item类,但对于这种情况,我们可以说它有一个名称,详细信息,inventory_count,价格就可以了。这些都是红宝石原语。

我想找回一个像名字'和'细节'这样:

vals=%[name detail]

item=Item.find(23)

# somethign like???

g={}
vals.map { |atr| g[atr]=item.??? }

或其他一些技术。我如何获取字符串表示并获取实例的属性?是否有更容易/更好的方法来做到这一点?

编辑1

看起来像send可能会这样做。我来看看

1 个答案:

答案 0 :(得分:2)

#attributes以散列表示形式返回一个对象,#slice返回仅包含给定键的散列,因此:

item.attributes.slice('name', 'detail')