0

上下文:我有一个带有附加头像的用户模型(通过回形针)。创建用户时不需要头像,但是当用户在他的个人资料上更新他的头像时,我希望需要头像。当用户上传新头像时,通过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。

谢谢。

4

1 回答 1

1
validates_attachment_presence :avatar, message: "The file is missing", on: :update

http://guides.rubyonrails.org/active_record_validations_callbacks.html#on

于 2012-07-12T14:11:46.443 回答