0

У меня есть две отдельные формы для изображения профиля и остальной информации профиля. Однако обе формы соответствуют модели профиля. Для некоторых из атрибутов профиля, у меня есть валидации как:рельсы проверяются в зависимости от формы

validates :title, presence: true 
validates :zip_code, presence: true 

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

validates :title, presence: true, :unless => :picture_exists? 

def picture_exists? 
    if self.pic 
     puts 'yo pic exist' 
     return true 
    else 
     puts 'yo no pic' 
     return false 
    end 
end 

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

ответ

0

Вы можете подойти к этому вопросу несколько способов:

1.- Пропустить все проверки в вашем действии контроллера (и проверять вручную, я думаю)

save(validate: false) (source)

2.- Используйте условие, которое вы устанавливаете вручную перед сохранением like this.

3.- Используйте специальную проверку, которая останавливает все другие проверки при запуске, если проходит.

Возможно, вы можете придумать больше.

PS: Почему вы ожидаете, что ваш пользователь будет обходить другие проверки перед настройкой изображения профиля?

GL & HF

+0

Спасибо, номер 3 может работать, но есть способ действительно сделать это? Я не уверен, что понимаю ваш вопрос PS? – Philip7899

+0

Я думаю, что номер 2 лучше (и тесно связан с 3). Возможно, это может пролить свет: http://stackoverflow.com/questions/8881712/skip-certain-validation-method-in-model – rlecaro2

+0

@ Philip7899 О PS Я спрашиваю, почему все остальные проверки инициируют ошибки? Рассчитывает ли ваш поток приложений пример использования изображения профиля даже при отсутствии других полей (или независимо от того, что вы проверяете)? – rlecaro2

Смежные вопросы