Сделайте поле необязательным в рельсах - PullRequest
2 голосов
/ 24 декабря 2009

Я использую скрепку для прикрепления аватара к пользователям, что отлично работает, но когда новый пользователь пытается зарегистрироваться, он жалуется на то, что аватар слишком мал и не подходит.

Вот как я проверяю свои аватары:

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

есть ли способ сделать так, чтобы аватарка могла быть пустой?

Ответы [ 3 ]

2 голосов
/ 24 декабря 2009

Не знаю, сработает ли это, но попробуйте:

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?
1 голос
/ 24 декабря 2009

Я не использовал скрепку, но в целом в Rails можно добавить условие, чтобы решить, следует ли запускать проверки.

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

Вы должны добавить подобное условие ко всем проверкам, влияющим на аватар. Если вы хотите узнать больше, посмотрите здесь .

0 голосов
/ 04 июня 2010

Это больше похоже на:

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

...