我切换到Mongoid 3,这使得一些事情有所不同:)目前我尝试检查一个复合字段是否是唯一的:
class Host
include Mongoid::Document
field :ip, :type => String
field :port, :type => Integer
field :username, :type => String
field :password, :type => String
validates_presence_of :ip
validates_presence_of :port
end如何获取其中的validates_uniqueness_of,检查ip和端口作为复合字段是否唯一?在Mongoid2中有一种方法可以基于多个字段创建新的_id,但似乎在Mongoid3中删除了这一点:
key :ip, :port发布于 2012-08-22 15:18:20
复合键支持在3中被移除,因为你现在可以很容易地覆盖默认的_id字段,并用一个lambda设置一个默认值。尝试如下所示:
class Host
include Mongoid::Document
field :_id, type: String, default: -> { ip + ":" + port }
...
end然后,您可以验证此_id字段的唯一性。
更多信息请参见Mongoid docs。
https://stackoverflow.com/questions/11856015
复制相似问题