2014-11-03 98 views
0

我试图挽救卡插入板(板被持久化):Mongoid不保存嵌入式文件

def createCard(user, board, section, color) 
    res = false 
    ua = UserAccount.find_by(username: user) 
    board = Board.find_by(_id: board) 
    card = Card.new 
    card.section = section 
    card.color = color 
    card.changes 
    board.cards << card 
    return card 
end 

与持久ID这种方法退卡,但如果我搜索板,这并不包含任何卡领域。

+0

你只是新的一个车实例,但不保存到数据库。 – dddd1919 2014-11-04 04:01:06

+0

“board.cards <<卡片”它可以节省卡片。谢谢 – user3632000 2014-11-04 09:21:06

+0

哦,也许你需要检查购物车是否保存成功,请参阅'cart.errors'。 – dddd1919 2014-11-04 09:30:31

回答

0

我曾在卡验证错误,我必须解决它添加到服务的方法:

... 
if card.valid? 
    board.cards << card 
    return card 
else 
    return card.errors 
end 
... 

感谢“dddd1919”

0

为了使更改生效,您需要在添加卡记录后保存该卡。返回卡前:

def createCard(user, board, section, color) 
    #... 
    board.save 
    return card 
end 
+0

感谢您的回答,但这不起作用。 Mongoid doc: Model#{name}。<< Model#{name} .push 将新文档推送到关系上。如果父母为 持续存在,则子文档将自动保存 。 所以我不知道我的错误在哪里。 – user3632000 2014-11-03 14:43:32

+0

我同意,但在你的例子中,你没有坚持“board”的父文档,或者我错过了什么? – Alireza 2014-11-03 14:45:07

+0

也尝试通过像这样的父文档创建一个新的'卡':'card = board.cards.build' – Alireza 2014-11-03 14:52:39