我无法让这个before_save
过滤器工作。我认为我的方法很标准。图像通过回形针上传。
before_save :remove_checked_attachments
def attachments
%w(banner footer logo accreditation)
end
private
def remove_checked_attachments
attachments.each do |a|
if "remove_#{a}".to_sym && !"#{a}_updated_at_changed?".to_sym
"#{a}".to_sym.destroy
end
end
end
remove_...
参数已通过,但没有任何内容被删除:
... "remove_banner"=>"1" ...
有什么想法吗?谢谢。
更新
即使将其简化为此也行不通:
after_validation { banner.clear if remove_banner == '1' }
并"remove_banner"=>"1"
通过参数。然后在控制台中工作正常u.banner.clear
。u.banner.save