具有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