내 Devise 등록 페이지에 중첩 된 양식이 있습니다. 역할 모델을 통해 사용자에게 연결된 회사 모델이 있습니다.사용자에게 친숙 함 표시 중첩 된 유효성 검사 오류가 있음
은 관련 게시물에 여기를 참조하십시오 : How do I update a nested resource without passing the data via a form
나는 등 내 검증을 설정할 수 있습니다 그들은 잘 작동하지만 오류 메시지가 중첩 된 리소스를 표시 할 때 그것은 추한 도착 - 문자 : 예를 들어
나는 빈 양식을 제출하면 내가 얻을 :
> Email can't be blank
> Password can't be blank
> Roles company name can't be blank
> Roles company address1 can't be blank
처음 두 개의 비 중첩 된 형태 요소와 마지막 두 설명하지만, 거의 사용자 친화적이다. 그들은 'Company Name'이어야하고 'Company Address'는 비워 둘 수 있습니다.
거대한 코드 조각이없이 변경할 수 있습니까?
UPDATE
내가 수동으로 고안 오류 메시지 도우미를 오버라이드 (override) 할 수 있습니다 :
어쨌든 서식을 정리하고 싶었다https://github.com/plataformatec/devise/blob/master/app/helpers/devise_helper.rb
.
업데이트 2
내가 뒷조사를했고, 나는이 발견 :
내가 내 en.yml이에 성공하지 않아야 수집 무엇부터 http://guides.rubyonrails.org/i18n.html#translations-for-active-record-models
:
en:
activerecord:
attributes:
user/role/company:
address1: "First Name"
name: "Company Name"
나는 그것을 시도했지만 지금까지는 행운이 없습니다.
UPDATE 3
는 더 내가 더 내가 찾을 파고.
https://github.com/jeremydurham/custom-err-msg
(몇 년 동안 유지되지 않지만)이 보석은 당신이 모델이 완전히 속성을 제거 할 수 있습니다 : 이것은 최선의 해결책이 될 수 있습니다. 나는이 경로를 찾아 어쨌든 사용자 정의 오류 메시지를 정의 할 수 있습니다.
중첩 모델의 유효성 검사 메시지 add_user_specific에 수동으로 메시지를 추가했습니다. – Sanjiv
validates : address1, : presence => {: message => "Address Required"} 이제 "Roles company address1 Address Required"메시지가 나타납니다. –