diff --git a/app/controllers/management/statistics_controller.rb b/app/controllers/management/statistics_controller.rb
index c073cd2c2de8a2ed88f5f75547dce5896ace44da..a2b32010c871c2ac8f53c744fc2f319300f56ef0 100644
--- a/app/controllers/management/statistics_controller.rb
+++ b/app/controllers/management/statistics_controller.rb
@@ -24,21 +24,9 @@ class Management::StatisticsController < ManagementController
   def users
     #missing roles
     @n_users = User.count
-    @n_curators = 0
-    @n_admins = 0
-    @n_teachers = 0
-    User.includes(:roles).all.each do |u|
-      if !u.roles[0].nil?
-        if u.roles[0]["name"] == "curator"
-          @n_curators += 1
-        elsif u.roles[0]["name"] == "admin"
-          @n_admins += 1
-        elsif u.roles[0]["name"] == "teacher"
-          @n_teachers +=1
-        end
-      end
-    end
-
+    @n_curators = Role.find_by(name: "curator").users.size
+    @n_admins = Role.find_by(name: "admin").users.size
+    @n_teachers = Role.find_by(name: "teacher").users.size
   end
 
   def accesses
@@ -74,11 +62,11 @@ class Management::StatisticsController < ManagementController
 
   def set_statistics
     @@n_users = User.count
-    @@n_collections = collection_repository.get_number_of_collections || []
-    @@n_learning_objects = learning_object_repository.count_all || []
-    @@n_non_visualised = learning_object_repository.get_number_of_non_visualised || []
-    @@most_visualised = learning_object_repository.get_most_visualised || []
-    @@n_views = learning_object_repository.get_number_of("Views") || []
+    @@n_collections = Collection.all.size
+    @@n_learning_objects = LearningObject.all.size
+    @@n_non_visualised = LearningObject.where(views_count: 0).size
+    @@most_visualised = LearningObject.order(:views_count)
+    @@n_views = LearningObject.sum(:views_count)
    end
 
   def views
diff --git a/app/views/management/statistics/index.html.erb b/app/views/management/statistics/index.html.erb
index 08f372ad15e21e249096a0dfb600e49fcaa2930a..35e6504b01803bee13fd9efa0857efbb25daee2d 100644
--- a/app/views/management/statistics/index.html.erb
+++ b/app/views/management/statistics/index.html.erb
@@ -4,4 +4,4 @@
   <li>Estatísticas</li>
 </ol>
 
-<%= render 'general_stats', users_number: 10, collections_number: 20, learning_objects_number: 12333, total_accesses: 1000283474 %>
+<%= render 'general_stats', users_number: @n_users, collections_number: @n_collections, learning_objects_number: @n_learning_objects, total_accesses: @total_accesses %>
diff --git a/app/views/management/statistics/learning_objects.html.erb b/app/views/management/statistics/learning_objects.html.erb
index 999870e07de6c60c307478b9c926e4957adaaae6..68d09eb00dcedd06336bfd4407b71b3145727a05 100644
--- a/app/views/management/statistics/learning_objects.html.erb
+++ b/app/views/management/statistics/learning_objects.html.erb
@@ -53,7 +53,7 @@
     <div class="row learning-object-columns">
       <% @most_visualised.each do |most| %>
         <%#= render_learning_object("vertical", most) %>
-        <li><%= link_to most["name"], learning_object_path(most["@rid"]) %></li><BR>
+        <li><%= link_to most["name"], learning_object_path(most["id"]) %></li><BR>
       <% end %>
     </div>
   </div>