Я модели профиляЗапуск только Скрепка валидация в Rails
class Profile < Abstract
has_attached_file :avatar,
...
validates_attachment_size :avatar, :less_than => 2.megabytes
validates_attachment_content_type :avatar, :content_type => ['image/jpeg', 'image/png', ...]
# Many other validations
end
У меня есть две разные формы: один для аватара, а другой для всех остальных полей. Пользователь должен иметь возможность сохранять аватар, не заполняя вторую форму. Можно ли проверить только прикрепление скрепки, пропуская все остальные проверки? После this ответ, который я пытался сделать так:
class Abstract < ActiveRecord::Base
def self.valid_attribute?(attr, value)
mock = self.new(attr => value)
unless mock.valid?
return !mock.errors.has_key?(attr)
end
true
end
end
и контроллер
def update_avatar
if params[:profile] && params[:profile][:avatar].present? && Profile.valid_attribute?(:avatar, params[:profile][:avatar])
@profile.avatar = params[:profile][:avatar]
@profile.save(:validate => false)
...
else
flash.now[:error] = t :image_save_failure_message
render 'edit_avatar'
end
end
Но это не сработало для скрепкой. всегда возвращает true.
спасибо. Я рассматривал это как возможное решение. Но мне нужно решение без отдельной модели –