上下文:我有一个带有附加头像的用户模型(通过回形针)。创建用户时不需要头像,但是当用户在他的个人资料上更新他的头像时,我希望需要头像。当用户上传新头像时,通过ajax请求只提交头像。此时,如果 file_field 为空,我想返回验证错误。
一开始我用
validates_attachment_presence :avatar, message: "The file is missing", :if => ->{ !new_record? }
但它不能完全按预期工作,它使我的验证测试套件失败should be_valid
describe User do
before do
@user = FactoryGirl.create :user
end
subject { @user }
[...]
it { should be_valid }
end
这是正常的。
关于我应该如何处理的任何想法?我想出的唯一另一个想法是@user.errors
如果文件字段为空,则从 UserController#update 中注入一个新错误,但它看起来很hacky。
谢谢。