проверка для хеш-столбца в рельсах - PullRequest
2 голосов
/ 30 декабря 2010

у меня есть таблица Users (id, name, ...) и таблица user_details (id, user_id, Additional_details, обозначение)

, где этот Additional_details - хеш с (: empid,: prjt)

Я пытаюсь добавить проверки для столбца Additional_details [: empid] и обозначения.Как это сделать ??

1 Ответ

7 голосов
/ 30 декабря 2010

С пользовательской проверкой в ​​пользовательских данных: например, если мы хотим проверить, что empid не пуст:

#in UserDetail
validate :additional_details_is_valid

def additional_details_is_valid
  if !self.additional_details.is_a?(Hash) || self.additional_details[:empid].blank?
    self.errors.add(:additional_details, "Empid is blank")
  end
end

Теперь нам просто нужно заставить объект User проверить, что связанный с ним объект user_detail действителен.

#in User
validates_associated :user_detail

Теперь, если empid не установлен, объект UserDetail будет жаловаться, а это, в свою очередь, заставит пользовательский объект жаловаться при попытке его сохранить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...