1

У меня есть одна модель, которая содержит правила проверки для моей страницы edit_profiles. На странице редактирования профиля я использую jquery accordion для разделения пользователя edit_profile в разные разделы, чтобы пользователи могли редактировать информацию. Каждый раздел представляет собой отдельную форму.Ruby on rails для проверки правильности профиля пользователя

например.

Базовая информация (форма 1) Личные статистики (форма 2) Любимые вещи (форма 3) Обо мне (форма 4)

Моя проблема успешно заполнения информации на одной форме и нажать кнопку обновления неудачен потому что другие правила проверки, которые были установлены, срабатывают, потому что другие формы не проверяют, потому что они еще не заполнены.

Я попытался использовать камень validation_group, но это, похоже, не влияет. Я хотел бы знать, есть ли простой способ сделать это?

Не могу ли я просто упорядочить правила проверки для каждой формы и поместить их в отдельные методы и только заставить их вступить в игру при нажатии кнопки обновления из соответствующей формы?

Итак, если нажать кнопку обновления в форме 1, метод form_one_validations будет, например, огнем, а не связанные методы проверки не будут.

Я действительно очень ценю пример того, как это сделать.

Это действие несет ответственность за у зрения edit_profile:

def edit_profile 

    @profile = Profile.find_by_user_id(current_user.id) 

    end 

Он основан внутри моего контроллера профилей.

Сердечные приветы

ответ

1

Я закончил использовать: allow_blank Таким образом, поля не должны заполняться, но все остальные важные правила проверки по-прежнему применяются, если они должны быть.

0

Я могу предложить вам такой подход: вы можете добавить дополнительные поля в модели, что-то вроде «basic_info_completed», которая будет создана сразу после того, как пользователь заполнил всю соответствующую информацию. И сделать все необходимые проверки условными и выполнить их только тогда, когда для этого поля установлено значение true. Поэтому, прежде чем пользователь заполняет все поля раздела профиля, все они могут быть отредактированы без проверки, но после заполнения полей профиля проверка включена для этой части профиля.

+0

Я хотел навсегда защитить db. Разве это не означает, что мой db более открыт для атаки без какой-либо проверки, защищающей ее? – LondonGuy

+0

В этом случае я предполагаю только два состояния полей: все поля группы пусты (null), все поля группы установлены (действительны). –

Смежные вопросы