Adding Custom Fields via Plugin Outlet에서 이어서 논의합니다:
방금 user-preferences-profile 아웃렛에 사용자 지정 설정을 추가해 보았습니다.
또한, 에미터 측 사용자 모델의 save 메서드로 사용자 지정 속성이 전달되도록 controllers/preferences/profile.js를 다시 열어 saveAttrNames 배열에 제 속성을 추가했습니다. 하지만 디버깅을 통해 user 모델의 save 메서드가 해당 필드가 userFields나 userOptionFields 등에 이미 이름이 지정되어 있지 않으면, _.intersection 호출 중 하나를 통해 해당 필드를 단순히 삭제한다는 것을 알게 되었습니다.
사용자 모델 자체를 통해 해당 데이터를 서버로 전송할 수 있는 API를 제안합니다. 혹은 이것이 의도된 설계 선택이라면, 그 이면의 논리나 이를 달성할 다른 방법이 있는지 이해하고자 합니다.
제 사용 사례는 플러그인을 통해 preferences 페이지에 설정을 추가하고, 동일한 변경 사항 저장 버튼을 사용하여 다른 설정들과 함께 저장하는 것입니다.
discourse-cakeday가 이를 수행한다는 것은 알고 있지만, date_of_birth 필드가 userFields 배열에 존재하기 때문에 작동하는 것입니다.