2012-02-06 203 views
0

從mongoid文檔:Mongoid - 更新嵌套屬性

考慮到有一些職位的成員:

類成員包括Mongoid ::文檔的has_many:帖子
accepts_nested_attributes_for:帖子結束

您現在可以通過屬性哈希設置或更新相關後期模型 上的屬性。

對於沒有id密鑰的每個散列,新記錄將被 實例化,除非該散列還包含 計算結果爲true的_destroy鍵。

params = {member:{name:「joe」,posts_attributes:{ {title:「Kari,令人敬畏的Ruby文檔瀏覽器!」 },{ 標題: 「的平等假設...」},{ 標題: 「」,_destroy: 「1」}#此將被忽略]}}

構件= Member.create(PARAMS [」 member'])member.posts.length#=> 2 member.posts.first.title#=>'Kari,令人敬畏的Ruby文檔 瀏覽器!' member.posts.second.title#=>「平均主義 假設......」

有沒有一種方法來更新嵌套的屬性,而不是創建呢?

+0

你可以發佈你的模式,它應該更簡單的回答。 – 2012-02-06 08:19:51

+0

這是一個非常大的模式,我將它剪下來併發布。 – CamelCamelCamel 2012-02-06 08:23:27

+1

任何機會你可以發佈架構或你得到這個解決myxospsm? – 2012-02-15 15:16:28

回答

1

它依賴於具有ID的嵌套文檔。

例如,在Rails表單中,相應的屬性字段(在您的情況下,posts_attributes)將作爲表單的一部分傳遞。然後,Rails爲元素進行更新,其中爲ID,併爲這些創建一個ID,但不包含