Ruby on rails persist嵌入一个关系mongoid
这将按以下顺序显示嵌入对象:Ruby on rails persist嵌入一个关系mongoid,ruby-on-rails,ruby,ruby-on-rails-3,mongoid,Ruby On Rails,Ruby,Ruby On Rails 3,Mongoid,这将按以下顺序显示嵌入对象: class Order include Mongoid::Document include Mongoid::Timestamps #relationships embeds_one :user_detail #fields field :description #validations validates :user_detail, presence: true end 我想在mongodborder对象上保存/持久保存use
class Order
include Mongoid::Document
include Mongoid::Timestamps
#relationships
embeds_one :user_detail
#fields
field :description
#validations
validates :user_detail, presence: true
end
我想在mongodborder
对象上保存/持久保存user\u详细信息
objectembedded\u在
order
对象中
我试过:
class UserDetail
include Mongoid::Document
include Mongoid::Timestamps
#fields
field :name, :type => String
field :zip_code, :type => String
field :email, :type => String
# Relationships
embedded_in :order
#validations
validates_presence_of :name, :zip_code, :email
end
但我发现验证失败:
order = Order.new(description: "checking description")
order.user_detail = Order.new(:name => "John", :zip_code => "26545", :email => "john@john.com")
order.save!
如何解决此问题?我正在使用mongoid3.x应该是:
o.save!
Mongoid::Errors::Validations:
Problem:
Validation of Order failed.
Summary:
The following errors were found: User detail is invalid
Resolution:
Try persisting the document with valid data or remove the validations....
您有
订单。新的订单详细信息。新的您不需要使用
order.user\u detail=UserDetail.new。。。
命令,救命!
如果添加autobuild属性,将自动创建嵌入的用户详细信息
embedded\u one:user\u detail autobuild:true
如果您还想在数据库中保存用户详细信息,请不要忘记添加
验证是否存在:用户详细信息
或者,您将无法在mongo db中看到持久化用户的详细信息。Uppss,谢谢,这是一个错误。我已经编辑了您的回复,您的回复是UserDetail
,而不是OrderDetail
。非常感谢。
order = Order.new(description: "checking description")
order.user_detail = UserDetail.new(:name => "John", :zip_code => "26545", :email => "john@john.com")
order.save!