Проверка атрибутов Ruby on rails, методы в модели - PullRequest
2 голосов
/ 10 июня 2011

У меня есть модель проекта и проверяет:

validates_presence_of :name, :position, :tel

Проект также имеет другие атрибуты, такие как: флаг. Я хочу сделать так: если вы введете: имя,: положение,: тел, то: флаг = истина, если один из этих атрибутов не указан, то: flag = false.

Как мне это сделать и где? В модели?

1 Ответ

1 голос
/ 10 июня 2011

Как вы объявили эту валидацию, модель даже не сохранится, пока пользователь не введет все три, поэтому установка флага в false - это спорный вопрос.

При этом, если вы хотите установить атрибутпри сохранении времени, основанном на значениях других атрибутов, вы можете использовать один из обратных вызовов , таких как before_save.

class Project << ActiveRecord::Base
  before_save :set_flag

  protected

  def set_flag
    self.flag = (self.name.blank? || self.position.blank? || self.tel.blank?) ? false : true
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...