Ruby RSpec/FactoryGirl-MongoID嵌入式文档不';不坚持
拥有以下工厂:Ruby RSpec/FactoryGirl-MongoID嵌入式文档不';不坚持,ruby,unit-testing,rspec,mongoid,factory-bot,Ruby,Unit Testing,Rspec,Mongoid,Factory Bot,拥有以下工厂: FactoryGirl.define do factory :user do provider "github" sequence(:uid) {|n| "111111#{n}"} sequence(:name) {|n| "name#{n}"} sequence(:email) {|n| "name#{n}@example.com"} sequence(:nickname) {|n| "nick#{n}"} sequence(
FactoryGirl.define do
factory :user do
provider "github"
sequence(:uid) {|n| "111111#{n}"}
sequence(:name) {|n| "name#{n}"}
sequence(:email) {|n| "name#{n}@example.com"}
sequence(:nickname) {|n| "nick#{n}"}
sequence(:token) {|n| "111111111111111111111111111111111111111#{n}"}
watchlists { [ FactoryGirl.build(:watchlist) ] }
end
factory :watchlist do
sequence(:html_url) {|n| "https://github.com/user#{n}/repo#{n}"}
description "One repo description"
sequence(:forks) {|n| "1#{n}"}
sequence(:watchers) {|n| "#{n}"}
created_at "2012-11-21 00:09:12 UTC"
pushed_at "2010-04-15 21:11:51 UTC"
avatar_url "https://avatar.example.com/avatar.png"
end
end
当我创建工厂时,如下所示:
let(:user) { FactoryGirl.create :user }
其结果是:仅用户持久化模型,而不包含其嵌入的子级:监视列表:
1.9.3p194 :014 > User.all.entries
MOPED: 10.8.0.6:27017 COMMAND database=admin command={:ismaster=>1} (328.6924ms)
MOPED: 192.168.3.101:27017 COMMAND database=admin command={:ismaster=>1} (216.3296ms)
MOPED: 127.0.0.1:27017 COMMAND database=admin command={:ismaster=>1} (422.3838ms)
MOPED: 127.0.0.1:27017 QUERY database=mongoid_test collection=users selector={} flags=[:slave_ok] limit=0 skip=0 batch_size=nil fields=nil (354.1191ms)
=> [#<User _id: 51126ae3aaa0786654000001, _type: nil, created_at: 2013-02-06 14:38:27 UTC, updated_at: 2013-02-06 14:38:27 UTC, email: "name1@example.com", encrypted_password: "", reset_password_token: nil, reset_password_sent_at: nil, remember_created_at: nil, sign_in_count: 0, current_sign_in_at: nil, last_sign_in_at: nil, current_sign_in_ip: nil, last_sign_in_ip: nil, provider: "github", uid: "1111111", name: "name1", nickname: "nick1", token: "1111111111111111111111111111111111111111", secret: nil, user_hash: nil>]
1.9.3p194 :015 >
1.9.3p194:014>User.all.entries
MOPED:10.8.0.6:27017命令数据库=admin命令={:ismaster=>1}(328.6924ms)
MOPED:192.168.3.101:27017命令数据库=admin命令={:ismaster=>1}(216.3296ms)
MOPED:127.0.0.1:27017命令数据库=管理命令={:ismaster=>1}(422.38ms)
MOPED:127.0.0.1:27017查询数据库=mongoid\u测试集合=users选择器={}标志=[:slave\u ok]limit=0 skip=0批处理大小=nil字段=nil(354.1191ms)
=> [#]
1.9.3p194:015>
如何使嵌入式mongoid模型也保持不变?它应该保持不变,但您需要查询关系 尝试:
User.first.watchlist
或者在MongoDB shell中,整个文档将按预期打印出来
db.users.find().pretty()代码>
有关MongoDB shell的更多信息,请参见此处:它应该是持久的,但您需要查询关系
尝试:
User.first.watchlist
或者在MongoDB shell中,整个文档将按预期打印出来
db.users.find().pretty()代码>
关于MongoDB shell的更多信息,请点击此处:当您尝试User.all.each{User | p User.watchlist}
当您尝试User.all.each{User | p User.watchlist}
是的,谢谢,我只是错过了一张查询图片:-)而嵌入的模型已经存在了…是的,谢谢,我只是错过了一张查询图片:-)而嵌入式模型已经存在了。。。