2016-01-09 4 views
0

Я работаю над созданием новой социальной сети с использованием рубинов и добился большого прогресса. Я хочу создать новые папки, в которых хранятся пользователи, хранящиеся на сервере. В каждой папке я хочу добавить числовой идентификатор в конец имени, например «users301» или «users557». Должен ли я добавить команду ввода в конце имени или создать генератор папок?Как добавить номера в имя папки

ответ

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 
+0

Подумайте, может быть, 'User.all.length' не нужно, вы можете просто использовать' User.length'. Может кто-нибудь подтвердить? –

+0

Возможно, вам понадобится 'User.count', который по сути делает' select count (*) для пользователей, тогда как 'User.all.length' загружает всех пользователей в массив, чтобы вы могли использовать' Array # length' , Я бы, вероятно, также использовал «id» пользователя для числа вместо количества, строки могут быть удалены, поэтому нет никакой гарантии, что, например, 'users6' не будет использоваться дважды или что' users11' будет связан с пользователь 11. –

+0

Спасибо. Я попробую это в своем коде. – metaco57