如何检查删除图像?我无法检查,因为在保存 averter.present 之前? return 是的
How to check remove image? I can not check because before save averter.present? return true
@foo.assign_attributes(update_params) #=> update_params includes "remove_avatar"=>"1"
@foo.avatar.present? #=> true
@foo.save
@foo.avatar.present? #=> false
保存前 present?
return true
。保存后 present?
return 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
不回滚 return false
.
如何检查 @foo.avatar
在验证中删除?
我想检查 avatar
已删除但保留图像裁剪数据。所以我需要检查 @foo.avater
删除或不删除。
如果 avatar
被删除,图像裁剪数据也会被删除。所以检查验证。
已经制作了删除我项目中所有图像裁剪数据(xxx_crop
列)的方法。
在你的控制器中你可以
if @foo.save
<do whatever>
else
render json: @foo.errors
所以@foo 将有一个错误属性。
您可以使用 remove_avatar?
.
@foo.remove_avatar? #=> true or false
.
- 如果
true
和 save
头像将被删除
- 如果
false
和save
,则头像不会被删除
@foo.assign_attributes(update_params) #=> update_params includes "remove_avatar"=>"1"
@foo.avatar.present? #=> true
@foo.save
@foo.avatar.present? #=> false
保存前 present?
return true
。保存后 present?
return 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
不回滚 return false
.
如何检查 @foo.avatar
在验证中删除?
我想检查 avatar
已删除但保留图像裁剪数据。所以我需要检查 @foo.avater
删除或不删除。
如果 avatar
被删除,图像裁剪数据也会被删除。所以检查验证。
已经制作了删除我项目中所有图像裁剪数据(xxx_crop
列)的方法。
在你的控制器中你可以
if @foo.save
<do whatever>
else
render json: @foo.errors
所以@foo 将有一个错误属性。
您可以使用 remove_avatar?
.
@foo.remove_avatar? #=> true or false
.
- 如果
true
和save
头像将被删除
- 如果
false
和save
,则头像不会被删除