У меня есть форма регистрации пользователя с обычными полями (имя, адрес электронной почты, пароль и т. Д.), А также поле «team_invite_code» и всплывающее меню «роль».
Перед созданием пользователя - только в случае, если роль пользователя "child" - мне нужно:
- проверить, присутствует ли код team_invite_
- проверить, есть ли в таблице команд команда с равным кодом приглашения
- связать пользователя с нужной командой
Как написать правильную валидацию в Rails 2.3.6 ?
Я попробовал следующее, но это дает мне ошибки:
validate :child_and_team_code_exists
def child_and_team_code_exists
errors.add(:team_code, t("user_form.team_code_not_present")) unless
self.is_child? && Team.scoped_by_code("params[:team_code]").exists?
end
>> NameError: undefined local variable or method `child_and_team_code_exists' for #<Class:0x102ca7fa8>
UPDATE:
Этот код проверки работает:
def validate
errors.add_to_base(t("user_form.team_code_not_present")) if (self.is_child? && !Team.scoped_by_code("params[:team_code]").exists?)
end