2016-09-19 2 views
-2

ABC-4F-ABC-8D-ABC와 같은 형식으로 고유 참조를 생성해야합니다. 여기서 ABC는 임의의 3 자 문자열, 4F, 8D는 임의의 16 진수입니다. 나는 루비에게 새로운 사람이다. 그래서 이것이 중복된다면 나를 용서해라. 어떻게해야합니까?특수 보안 ID 생성

+2

왜이 형식입니까? 아마도 단순한'SecureRandom.uuid'가 더 나은 옵션일까요? – spickermann

+0

내 작업에 언급되었습니다. 부품을 만들고 함께 추가하기 위해 내 자신의 랜덤 화기와 같은 것을 만들어야한다고 생각합니까? –

+0

스택 오버플로에 오신 것을 환영합니다. 귀하의 질문은시기 상조입니다. 시도해 볼 필요가있을 때 문제에 대한 자세한 질문을 할 때 발생합니다. 링크 된 페이지를 포함하여 "[ask]"를 읽으십시오. 코드에 문제가 발생하면 "[mcve]"를 읽으십시오. "[Stack Overflow 사용자들에게 얼마나 많은 연구 노력이있을 것으로 기대합니까?] (http://meta.stackoverflow.com/a/261593/128421)"질문 할 때 우리의 기대치를 설명 할 것입니다. –

답변

2

필요한 모든 것이 Ruby에 내장되어 있습니다.

def generate_unique_reference 
    "#{generate_string(ALPHA, 3)}-#{generate_string(HEX, 2)}-....." 
end 

내가 떠날거야 :

ALPHA = ('A'..'Z').to_a # might also want to add numbers or lower-case letters? 
HEX = ('A'..'F').to_a + (0..9).to_a 

def generate_string(alphabet, length) 
    # pick random elements from the alphabet and concatenate 
    # until length is reached. 
    # key method is `sample` which selects a random element from 
    # an array (the alphabet, in your case) 
    # you can try it on irb like so: 
    # [1, 2, 3].sample 
end 

은 그럼 당신은 뭔가를 할 수 있습니다 : 당신은 당신의 캐릭터 라인을 형성하기 위해 알파벳 인 배열을 만든 다음 그것에서 sample의를 선택할 수 있습니다

운동을 끝내는 것이 좋습니다 (숙제와 같은 소리입니까?)

+0

고마워요))) 그게 전부입니다 !!!! –