在rails中创建一个可选字段

我使用回形针将头像附加到用户,这可以正常工作,但是当一个新用户试图注册它时抱怨头像太小而不是正确的类型。

这是我validation我的头像的方式:

validates_attachment_size :avatar, :less_than => 1.megabytes validates_attachment_content_type :avatar, :content_type => ['image/jpeg', 'image/png', 'image/gif'] 

这是我尝试注册时遇到的错误。

 There were problems with the following fields: * Avatar file size file size must be between 0 and 1048576 bytes. * Avatar content type is not included in the list 

反正是为了使头像可以空白?

我不知道这是否会起作用但是尝试:

 validates_attachment_size :avatar, :less_than => 1.megabytes, :if => avatar_changed? validates_attachment_content_type :avatar, :content_type => ['image/jpeg', 'image/png', 'image/gif'], :if => avatar_changed? 

我没有使用paperclip,但通常在Rails中你可以添加条件来决定是否应该运行validation。

 validates_attachment_size :avatar, :less_than => 1.megabytes, :unless => "avatar.blank?" 

您应该为影响头像的所有validation添加类似的条件。 如果你想了解更多,请看这里 。

它更像是:

validates_attachment_size :avatar, :less_than => 1.megabytes, :unless => "avatar_content_type.blank?"