gpt4 book ai didi

ruby-on-rails - “validates_presence_of”在 Mongoid 中效果不佳?

转载 作者:可可西里 更新时间:2023-11-01 09:11:06 26 4
gpt4 key购买 nike

有两个类:

class Person
include Mongoid::Document

field :name
embeds_many :addresses
end

class Address
include Mongoid::Document

field :city
field :street

validates_presence_of :city, :street
end

我们可以看到,我们已经验证了 citystreet 应该存在。

但是看下面的代码:

person = Person.new
person.addresses << Address.new
person.save #-> true

并且,我们使用 mongo 直接查看数据库:

$mongo
> use the_db
> db.people.find()
{"_id":"xxxxx", "addresses":[{"_id":"xxxxx"}]}

地址已插入。这意味着 Address 中的 validates_presence_of :city, :street 无效。

我错过了什么吗?还是 Mongoid 有问题?

最佳答案

试试这个

class Person
include Mongoid::Document

field :name
embeds_many :addresses

validates_associated :addresses
end


class Address
include Mongoid::Document

field :city
field :street

embedded_in :person
validates_presence_of :city, :street
end

现在我想如果你试图保存地址那么你将无法保存人因为 validates_assocaited :addresses 试图在保存人之前验证地址。
希望这有效

关于ruby-on-rails - “validates_presence_of”在 Mongoid 中效果不佳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3262588/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com