从关联的模型

时间:2016-02-02 23:13:04

标签: ruby-on-rails carrierwave

通过相关模型删除附件的正确方法是什么?

我有一个has_one Will.rb模型的Profile.rb模型。将通过与配置文件相同的表单编辑遗嘱。我可以使用:will_attachment字段附加文件,但尝试使用:remove_will_attachment复选框不起作用。

Params结构如下:

"portfolio" =>
 {"will_attributes" =>
    {"remove_will_attachment"
    }
  }

我在允许的params方法中有:will_attachment:remove_will_attachment

我目前不得不通过检查参数中的remove_will_attachment == "1"并手动调用@portfolio.will.remove_will_attachment!来删除附件,但似乎应该采用更顺畅的方式来执行此操作。

我错过了什么吗?谢谢!

1 个答案:

答案 0 :(得分:1)

CarrierWave中的一个错误是在主分支上解决。有一个原因,如果只设置了remove_#{column}属性访问器,它就不会删除上传的文件。

在CarrierWave 0.10中,这不起作用

"portfolio" =>
 {"will_attributes" =>
    {"remove_will_attachment" => true
    }
 }

这将

"portfolio" =>
 {"will_attributes" =>
    {"remove_will_attachment" => true,
     "another_attribute" => "CHANGED VALUE"
    }
 }