Вам не нужен метод инициализации. Вашу настройку можно записать так
def setup
Room.all.each_with_index do |room, i|
room.users = User.find(:all, :limit => room_max_users + i + 1)
room.save
end
end
Таким образом, это заполняет ваши комнаты пользователями, основываясь на их идентификаторе в базе данных. Только нужные пользователи загружаются одновременно, поэтому это не должно быть критично для производительности.
Кстати, этот метод должен быть определен как метод класса, возможно, для Room, чтобы вы могли вызывать его как
class Room < AR::Base
has_many :users
def self.fill_with_users
Room.all.each_with_index do |room, i|
room.users = User.find(:all, :limit => room_max_users + i + 1)
room.save
end
end
end
Room.fill_with_users
Таким образом, вам также не понадобится ваш класс настройки.