具有Mongoid和Rails的字段别名
MongoDB中的常见做法是使用短密钥名称来节省空间。 例如,有人可能想使用“fn”而不是“first_name”
然而,在你的应用程序中,如果你在整个地方使用“fn”,你就会被搞砸了。 太难看了。 特别是对于Rails,在Mongoid中声明字段时是否有一种简单的方法来指定别名?
另外,有没有人知道任何使用Mongoid的开源示例项目?
谢谢!
你应该考虑使用
field :fn, :as => :firstname
如下所述: http : //groups.google.com/group/mongoid/browse_thread/thread/ce3298d6a167bd70
这是一个非常好的做法,完全支持mongoid。
我从未在任何MongoDB项目中看到过短名称,所以我不会说这是常见做法。 我不认为你会看到明显的速度改进,它会不必要地使你的代码复杂化。 描述性名称很好,所以它们不是那么描述性的,它会让你永远输入。
有很多MongoDB开源项目。 只需在github上搜索一下。
– 在下面编辑 –
这是一个非常自以为是的答案。 如其他答案中所述,覆盖处理方法( https://github.com/mongoid/mongoid/blob/master/lib/mongoid/attributes/processing.rb )更适合于必须具有小字段名称的情况。
这样的东西应该在你的类文件中工作。 (它并未在所有情况下都经过测试,只是将哈希传递给创建或更新。)
field :fn, :type => String alias :first_name :fn alias :filtered_process :process def process(attrs = nil) attrs[:fn] = attrs[:first_name] unless attrs.nil? filtered_process(attrs) end