@foo.assign_attributes(update_params) #=> update_params includes "remove_avatar"=>"1"
@foo.avatar.present? #=> true
@foo.save
@foo.avatar.present? #=> false
保存present?
之前返回true
。保存present?
后返回false
。
我的验证
validate :validate_avatar
def validate_avatar
# if @foo.avatar deleted and same conditions, add error
end
在validate_avatar
中,@foo.avatar.present?
为true
,因为在保存之前。
我尝试after_save :validate_avatar
。
after_save :validate_avatar
def validate_avatar
# if @foo.avatar deleted and same conditions, add error
# then return false
end
因为after_save,@foo.avatar.present?
是false
。但Rails5
不回滚false
。
如何检查验证中删除的@foo.avatar
?
我想检查avatar
是否已删除但仍保留图像裁剪数据。所以我需要检查@foo.avater
已删除或未删除。
如果删除avatar
,则图片裁剪数据也会被删除。请检查验证。
已经在我的项目中删除了所有图像裁剪数据(xxx_crop
列)。
答案 0 :(得分:0)
在您的控制器中,您可以
if @foo.save
<do whatever>
else
render json: @foo.errors
所以@foo会有一个errors属性。
答案 1 :(得分:0)
您可以使用new MyClass(name, value)
。
remove_avatar?
。
@foo.remove_avatar? #=> true or false
true
save
false