Ruby rand() cannot accept variables? -


i'm little baffled this.

my end goal in ror project grab single random profile database.

i thinking like:

@profile = profile.find_by_user_id(rand(user.count)) 

it kept throwing error because user_id 0 doesn't exist, pulled parts of out check out what's going on:

@r = rand(user.count)  <%= @r %> 

this returns 0 every time. what's going on? registered 5 fake users , 5 related profiles test this.

if take profile.find_by_user_id(rand(user.count)) , rewrite

profile.find_by_user_id(3) 

it works fine.

user.count working too. think rand() can't take input other static integer.

am right? whats going on?

try:

profile.first(:offset => rand(profile.count)) 

as database ages, 1 user records, there gaps in id field sequence. trying grab id @ random have potential fail because might try randomly grab 1 deleted.

instead, if count number of records, randomly go offset table sidestep possibility of having missing ids, , landing on existing records.

the following example ops question run problems unless integrity of database watched carefully:

profile = profile.find_by_user_id(rand(user.count)) 

the problem is, there's possibility user table out of sync profile table, allowing them have different numbers of records. instance, if user.count 3 , there 2 records in profile there's potential failed lookup resulting in exception.


Comments

Popular posts from this blog

asp.net - repeatedly call AddImageUrl(url) to assemble pdf document -

java - Android recognize cell phone with keyboard or not? -

iphone - How would you achieve a LED Scrolling effect? -