사용자 이름 또는 이메일 주소로 사용자 ID 조회

기존 뉴스 피드의 아카이브를 JSON 형식으로 보유하고 있으며, 이를 새로운 포럼의 뉴스 카테고리에 채우기 위해 사용하고자 합니다. 피드 내 모든 게시글은 이미 포럼 계정을 보유한 사용자들이 작성한 것입니다. 가장 간단한 방법은 일반적인 JSON 가져오기(importer)를 수정하여 새 사용자를 생성하는 대신 기존 사용자를 조회(사용자 이름 또는 이메일 주소로)하도록 하는 것 같습니다.

입력 JSON에 빈 users 목록을 제공하면 새 사용자를 생성하지 않도록 할 수 있을 것 같고, 각 게시글의 사용자 ID를 설정하는 /srcipts/import_scripts/json_generic.rb 파일의 해당 줄을 변경하면 됩니다:

user_id: user_id_from_imported_user_id(username_for(first_post["author"])) || -1

따라서 이 키-값 쌍의 값을 가져오기(importer)가 이전에 생성한 사용자의 ID를 조회하는 것이 아니라, 기존 사용자의 ID를 가져오는 것으로 대체해야 합니다.

사용자 이름 또는 이메일 주소로 기존 사용자의 ID를 조회하는 방법은 무엇입니까?

API를 통해 수행할 수 있습니다.

JSON API를 통해 사용자를 조회할 수 있다는 점은 알고 있습니다. 하지만 저는 Discourse가 자체적으로 실행되는 Ruby 환경에서 이 작업을 수행하고 있으므로, JSON API를 호출하는 번거로움을 피하고 필요한 함수를 직접 호출하는 것이 훨씬 직관적이지 않을까요? 이것이 정말로 권장되는 방식인가요? 제가 확인해 본 다른 임포터 코드 어디에서도 JSON API를 사용하는 것을 볼 수 없었습니다.

Discourse에 가져온 지 오래되어 잘 모르겠는데, 혹시 다른 분이 아시는 분이 있을까요. 가끔 이메일과 ID를 대량으로 확인해야 해서 API를 사용하고 있습니다.

제가 찾던 것은 결국 이것이었네요:

User.find_by_username(username)&.id