Rails 3.1 RC4 remove_attachment无法删除!

| 在Rails 3.1 RC4上使用Carrierwave 0.5.4。 在Rails控制台中,我这样做:
@foo.attachment
返回:
=> http://cdn.site_name.com/uploads/users/2/banners/banner.png 
然而:
@foo.remove_attachment!
返回:
 => [:remove_versions!] 
记录仍保留在DB中,但文件已在S3存储桶中删除。 到底是怎么回事?     
已邀请:
        进一步调查后,嗯。这是我发现的。
remove_attachment!
表示从S3删除图像,但不表示删除db附件列中的上载器对象。这是载波的正常行为。 Jnicklas在https://github.com/jnicklas/carrierwave/commit/ecabc618d0fce22c1931c6d2eb134886e3b60e4c提供了一个测试点,使用5分。这是关键,因为当提交表单以删除附件/图片/照片/其他内容时。它们通常包括一个如下所示的复选框:
<input type=\"checkbox\" value=\"1\" name=\"user[remove_attachment]\" id=\"user_remove_attachment\">
可以使用helper标签将其呈现为:
<%= f.check_box :remove_attachment %>
如果单击复选框并提交表单。参数看起来像:
{\"utf8\"=>\"✓\", \"_method\"=>\"put\", ....., \"user\"=>{\"remove_attachment\"=>\"1\"}, \"controller\"=>\"das....}
Rails将其解释为“ 9”以清除db列,并触发“ 10”以从S3中删除文件。 还值得注意。如果attr_accessible是在ѭ11模型中定义的。那么它也必须有
:attachment, :remove_attachment
。 希望这可以帮助某人。     

要回复问题请先登录注册