1

내 edit_profiles 페이지에 대한 유효성 검사 규칙이있는 모델이 하나 있습니다. 프로필 편집 페이지에서 jquery 아코디언을 사용하여 사용자가 edit_profile을 다른 섹션으로 분할하여 사용자가 정보를 편집 할 수있게했습니다. 각 섹션은 별도의 양식입니다.사용자 프로필에 대한 루비 온 레일 폼 유효성 검사 필요

기본 정보 (양식 1) 개인 통계 (양식 2) 좋아하는 것들 (양식 3) 나에 대해 (양식 4)

내 문제를 성공적으로 하나의 양식에 정보를 입력하고 업데이트를 클릭하면됩니다 실패 아직 채워지지 않았기 때문에 다른 양식이 유효성 검사에 실패했기 때문에 다른 유효성 검사 규칙이 실행되고 있습니다.

나는 validation_group 보석을 사용하려고했지만 아무런 효과가없는 것 같습니다. 쉬운 방법이 있는지 알고 싶습니다.

각 양식에 대한 유효성 검사 규칙을 묶어 별도의 메서드에 넣을 수는 없으며 일치하는 양식의 업데이트 단추를 클릭했을 때만 재생되도록 할 수 있습니까?

양식 1의 업데이트 버튼을 클릭하면 form_one_validations 메소드가 실행되지 않고 관련없는 유효성 검증 메소드가 실행되지 않습니다.

이 작업을 수행하는 방법에 대한 예제를 정말 고맙게 생각합니다.

def edit_profile 

    @profile = Profile.find_by_user_id(current_user.id) 

    end 

그것은 내 프로필 컨트롤러 내부 기반으로합니다

이 y를 edit_profile보기에 책임있는 행동입니다.

종류 내가 당신에게 같은 방법을 제안 할 수

답변

1

나는 결국 다음을 사용했다 : allow_blank 이런 식으로 필드를 채울 필요는 없지만 다른 중요한 유효성 검사 규칙은 여전히 ​​적용되어야한다.

0

에 관하여 : 당신은 한 번에 사용자가 모든 해당 정보를 작성 후 설정 될 것이다 "basic_info_completed"같은 모델에 뭔가를 추가 필드를 추가 할 수 있습니다. 그리고 필요한 모든 검증을 조건부로 만들고 그러한 필드가 true로 설정된 경우에만 수행하십시오. 따라서 사용자가 프로필 섹션의 모든 입력란을 채우기 전에 입력란은 유효성 검사없이 모두 편집 할 수 있지만 프로필 입력란이 완료되면 해당 프로필 부분에 대한 유효성 검사가 사용 설정됩니다.

+0

나는 실제로 데이터베이스를 항상 보호하기를 원했습니다. 내 DB가 유효성 검사의 형태가없는 공격에 더 개방적이라는 뜻입니까? – LondonGuy

+0

이 경우 필드의 두 가지 상태 만 가정합니다. 그룹의 모든 필드가 비어 있고 (null) 그룹의 모든 필드가 설정됩니다 (유효한). –