Ruby on rails 验证与MongoMapper的关联
型号: 在控制器中:Ruby on rails 验证与MongoMapper的关联,ruby-on-rails,ruby,ruby-on-rails-3,mongomapper,Ruby On Rails,Ruby,Ruby On Rails 3,Mongomapper,型号: 在控制器中: class User include MongoMapper::Document many :properties validates_associated :properties ... end class Property include MongoMapper::Document belongs_to :user many :services validates_associated :services ... end clas
class User
include MongoMapper::Document
many :properties
validates_associated :properties
...
end
class Property
include MongoMapper::Document
belongs_to :user
many :services
validates_associated :services
...
end
class Service
include MongoMapper::Document
belongs_to :property
...
end
似乎它没有使用当前的_user.save方法验证属性模型。
为什么?(在MongoMapper中,分配一个非嵌入式多关联会自动保存您正在关联的记录。但是,如果其中任何记录无效,它们不会以静默方式保存到数据库中。下次您请求关联时,MongoMapper将转到数据库,但什么也找不到。您分配的无效记录将消失
@property.save #returns false and true as expected
current_user.save #returns always true why?
您可以使用build
方法将对象添加到关联中,而无需保存
user = User.new(:properties => [Property.new])
user.properties # => []
user.valid? # => true
user=user.new
user.properties.build
user.properties#=>[#]
user.valid?#=>false
我认为关联保存是蒙哥马普的弱点之一。然而,这不是一个简单的问题。请参阅讨论这些挑战。
< P>在MongoMapper中,分配一个非嵌入的多个关联会自动保存您所关联的记录。但是如果这些记录中的任何一个无效,它们就不会被保存到数据库中。e、 下次您请求关联时,MongoMapper将转到数据库,但什么也找不到。您分配的无效记录将消失@property.save #returns false and true as expected
current_user.save #returns always true why?
您可以使用build
方法将对象添加到关联中,而无需保存
user = User.new(:properties => [Property.new])
user.properties # => []
user.valid? # => true
user=user.new
user.properties.build
user.properties#=>[#]
user.valid?#=>false
我认为关联保存是蒙哥马普的弱点之一。然而,这不是一个简单的问题。请参阅对这些挑战的讨论。
在我简短的测试中,