0
我目前的Cocoon /嵌套窗体工作得很好。 不过,我想改变这种行为:Rails + Cocoon:更新嵌套资源而不是销毁它
主要型号:
accepts_nested_attributes_for :varietals, :reject_if => lambda { |a| a[:grape_id].blank? && a[:id].blank? }, allow_destroy: true
删除品种物体allow_destroy相反的,我想,当它被摧毁更新其状态字段设置为0。
可以在这一行调用一个函数来做到这一点?我应该更新品种模型吗?
喜欢的东西:
varietal.update_attributes(:status => 0)
当一个嵌套的资源被用户删除。
谢谢。
编辑:主窗体的编辑后的数据后并嵌套品种的去除,以帮助:
"varietals_attributes"=>{"0"=>{"grape_attributes"=>{"id"=>"168"}, "grape_id"=>"168", "percent"=>"20", "_destroy"=>"1", "id"=>"32709368-3496-47EA-A386-B1CCECA0BAEF"}},
如果我在品种模型中添加一个像before_destroy这样的回调函数,我可以改变状态字段,但它会在刚刚破坏对象之后,不是吗?我编辑了我的消息,发布了销毁后更新的数据。 –
如果您删除'allow_destroy',它不会将对象标记为销毁。 – PoloniculMov
我做到了,但我的回调没有在品种模型中调用(似乎是合乎逻辑的)。 –