Я работаю над созданием новой социальной сети с использованием рубинов и добился большого прогресса. Я хочу создать новые папки, в которых хранятся пользователи, хранящиеся на сервере. В каждой папке я хочу добавить числовой идентификатор в конец имени, например «users301» или «users557». Должен ли я добавить команду ввода в конце имени или создать генератор папок?Как добавить номера в имя папки
0
A
ответ
1
Вы можете использовать библиотеку Dir
. Вы должны использовать строчную интерполяцию для вставки чисел в строку.
Вы можете получить количество пользователей, использующих ActiveRecord. Это будет выглядеть примерно так.
num_users = User.count
for i in 1..num_users
Dir.mkdir("users#{i}")
end
Конечно, код должен быть обновлен, если новый пользователь был создан. Вы можете использовать для этого callback
.
after_create do
Dir.mkdir("users#{User.last.id}")
end
Подумайте, может быть, 'User.all.length' не нужно, вы можете просто использовать' User.length'. Может кто-нибудь подтвердить? –
Возможно, вам понадобится 'User.count', который по сути делает' select count (*) для пользователей, тогда как 'User.all.length' загружает всех пользователей в массив, чтобы вы могли использовать' Array # length' , Я бы, вероятно, также использовал «id» пользователя для числа вместо количества, строки могут быть удалены, поэтому нет никакой гарантии, что, например, 'users6' не будет использоваться дважды или что' users11' будет связан с пользователь 11. –
Спасибо. Я попробую это в своем коде. – metaco57