@WEB_champion

В Rails-ах если в модели есть validates :password, presence: true, то как можно снять этот обязанность в другом месте?

Дело в том, что я хочу реализовать функции для пользователей (user), то есть, добавления и редактирования. И вот в классе модели присутствует:
class User < ActiveRecord::Base
  validates :password, presence: true
end


И при добавлении нового пользователя ввод пароля обязателен.
Есть другая ситуация уже при редактировании. В форме редактирования предоставляются поля для редактирования:
E-mail
Логин
Пароль
Новый пароль

Причем пароль тут пустой. И если пользователь не хочет поменять пароль, то он должен оставить поле пустым, то есть, как есть. Но когда отправляется это поле для update, то данные не сохраняются, потому что поле password-а обязателен.
Как можно решить проблему, точнее, как снять обязанность для исключительной ситуации?
  • Вопрос задан
  • 2207 просмотров
Решения вопроса 1
anyd3v
@anyd3v
Как минимум есть 2 способа
1. validates_presence_of :password, :on => :create
2. object.save(:validate => false)

вы их пробовали? почему они вам не подходят?
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
При сохранении валидацию отключи.
Или определи её использование, только при создании объекта, выше anyd3v ответил правильно.

в помощь
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы