上下文:我有一个附带头像的用户模型(通过回形针)。在创建用户时不需要化身,但是当用户在他的简档上更新他的化身时我想要化身。 当用户上传新的化身时,仅通过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
这是正常的。
我对如何处理这个有任何想法?
我提出的唯一另一个想法是,如果文件字段为空但是看起来很乱,那么在UserController#update的@user.errors
中注入一个新错误。
感谢。
答案 0 :(得分:1)
validates_attachment_presence :avatar, message: "The file is missing", on: :update
http://guides.rubyonrails.org/active_record_validations_callbacks.html#on