Задать вопрос
@WEB_champion

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

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


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

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

вы их пробовали? почему они вам не подходят?
Ответ написан
Комментировать