Ruby rand () не может принимать переменные?

Я немного сбит с толку.

Моя конечная цель в проекте RoR - получить один случайный профиль из моей базы данных.

Я подумал, что это будет примерно так:

@profile = Profile.find_by_user_id(rand(User.count))

Он продолжал выдавать ошибку, потому что user_id 0 не существует, поэтому я вытащил его части, чтобы проверить, что происходит:

@r = rand(User.count)

<%= @r %>

Это возвращает 0 каждый раз. Так что же происходит? Я зарегистрировал 5 поддельных пользователей и 5 связанных профилей, чтобы проверить это.

Если я возьму Profile.find_by_user_id (rand (User.count)) и перепишу его как

Profile.find_by_user_id(3)

, он будет работать нормально.

] User.count тоже работает. Поэтому я думаю, что rand () не может принимать ввод, кроме статического целого числа.

Я прав? Что происходит?

5
задан Andrew Grimm 2 December 2010 в 22:55
поделиться