我有一个 embeds_many 关联,我正在尝试设置它,我之前已经成功完成了它,但是我试图以一种嵌套形式完成所有操作,但我无法弄清楚。
假设我们有一个 pocket
模型:
class Pocket
include Mongoid::Document
field :title, type: String
embeds_many :coins, cascade_callbacks: true
end
和硬币模型:
class Coin
include Mongoid::Document
field :name, type: String
embedded_in :pocket
end
在我的口袋形式中,我正在使用:
= f.fields_for @pocket.coins do |coin|
= coin.text_field :name
我的 Controller 是默认的脚手架 Controller 。
当我使用控制台时,它保存得很好,我可以看到我创建的新口袋和硬币。但是当我尝试从表单创建或更新硬币时,口袋会保存但硬币保持不变。
我在这里缺少什么?
最佳答案
将您的模型 Pocket 更改为
class Pocket
include Mongoid::Document
field :title, type: String
embeds_many :coins, cascade_callbacks: true
accepts_nested_attributes_for :coins
end
它会正常工作。
关于ruby-on-rails-3 - Mongoid Embeds_many 不会保存在嵌套表单上,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13137532/