我需要使用工廠女孩生成一個4位數的唯一ID。我用rand
但它不工作。它會生成一個隨機數並將其分配給所有記錄。我怎樣才能做到這一點?在Rails中,如何使用FactoryGirl生成一個4位數的ID?
以下是我使用的方法蘭德:
nyaaid "NYAA/N/WP#{Random.rand(0002..9999)}"
我需要使用工廠女孩生成一個4位數的唯一ID。我用rand
但它不工作。它會生成一個隨機數並將其分配給所有記錄。我怎樣才能做到這一點?在Rails中,如何使用FactoryGirl生成一個4位數的ID?
以下是我使用的方法蘭德:
nyaaid "NYAA/N/WP#{Random.rand(0002..9999)}"
如果我正確地理解您的問題在下面的代碼可以工作。
[1,1,1,1].map!{|x| (0..9).to_a.sample}.join
你需要用它在{}
nyaaid { "NYAA/N/WP#{Random.rand(0002..9999)}" }
另一種方法是使用String#%
零墊的隨機數四位:
'%04d' % Random.rand(2..9999)
PS:0002
並不意味着什麼,你可能認爲它。前導零表示該數字爲八進制數(請參閱0010
,irb
,您將看到8
,而不是10
)。你很幸運,因爲2是八進制和十進制的2,但你真的應該使用2..9999
以避免混淆。
FactoryGirl具有序列專門爲這種情況下:
sequence(:nyaaid) { |n| sprintf("NYAA/N/WP%04d", n) }