2014-11-03 68 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