diff --git a/app/assets/javascripts/application/learning_objects.coffee b/app/assets/javascripts/application/learning_objects.coffee
index b50f394bdc37e5076efe2796d8e44d89eaec4d13..d0216b86713e5fe8a6a57e03d80853a4d5bbedcd 100644
--- a/app/assets/javascripts/application/learning_objects.coffee
+++ b/app/assets/javascripts/application/learning_objects.coffee
@@ -5,3 +5,11 @@ $ ->
       $('#collections_list_popover').html()
 
   return
+
+
+# Rails creates this event, when the link_to(remote: true)
+# successfully executes
+$(document).on 'ajax:success', 'a.vote', (status, data, xhr)->
+# the `data` parameter is the decoded JSON object
+  $(".votes-count[data-id=#{data.id}]").text data.count
+  return
\ No newline at end of file
diff --git a/app/controllers/learning_objects_controller.rb b/app/controllers/learning_objects_controller.rb
index a1e384b0a65f098238a181b9098d1f9fc85fcc84..1ec896da824a1104b7d63744df144122ae505a1b 100644
--- a/app/controllers/learning_objects_controller.rb
+++ b/app/controllers/learning_objects_controller.rb
@@ -1,7 +1,7 @@
 class LearningObjectsController < ApplicationController
   before_action :set_learning_object, only: [:show, :edit, :update, :destroy, :like]
   after_action :increment_learning_object_views, only: [:show]
-  before_action :authenticate_user!, except: [:index, :show]
+  before_action :authenticate_user!, except: [:index, :show, :like]
 
   # GET /learning_objects
   # GET /learning_objects.json
@@ -62,7 +62,10 @@ class LearningObjectsController < ApplicationController
   # POST /learning_objects/1/like
   def like
     learning_object_repository.like current_user, @learning_object
-    redirect_to :back
+
+    if request.xhr?
+      render json: {count: @learning_object.likes, id: params[:id]}
+    end
   end
 
   private
@@ -83,4 +86,4 @@ class LearningObjectsController < ApplicationController
     end
   end
 
-end
+end
\ No newline at end of file
diff --git a/app/models/learning_object.rb b/app/models/learning_object.rb
index b0c27500ddb7453022f9c3fc6060bc99d1bbf455..9c69866228d748dcd084c668d703bbc6bc237b9b 100644
--- a/app/models/learning_object.rb
+++ b/app/models/learning_object.rb
@@ -1,5 +1,7 @@
 class LearningObject
   include ActiveModel::Model
+  include RepositoriesProxy
+
   attr_accessor :id, :id_dspace, :rid, :name, :description,
                 :thumbnail, :created_at, :last_modified,
                 :type, :bitstreams, :metadata, :likes, :views,
@@ -73,8 +75,4 @@ class LearningObject
     }
   end
 
-  def learning_object_repository
-    Portalmec::Application.repository.for :learning_object
-  end
-
 end
diff --git a/app/repositories/orient_db/learning_object_repository.rb b/app/repositories/orient_db/learning_object_repository.rb
index ad6b2fa816bd819627c771ce863878066ec24ae8..51e747d9bd442255692884d08b39a4674fb7166a 100644
--- a/app/repositories/orient_db/learning_object_repository.rb
+++ b/app/repositories/orient_db/learning_object_repository.rb
@@ -5,6 +5,7 @@ module OrientDb
 
     def increment_views(user, learning_object)
       create_edge "Views", user.rid, learning_object.id
+      learning_object.views = learning_object.views + 1
     end
 
     #
@@ -13,6 +14,7 @@ module OrientDb
     #
     def like(user, learning_object)
       create_edge "Likes", user.rid, learning_object.id
+      learning_object.likes = learning_object.likes + 1
     end
 
     # Example:
@@ -58,7 +60,7 @@ module OrientDb
       result = connection.command "INSERT INTO LearningObject CONTENT #{learning_object.to_json}"
     end
 
-    def update_property(learning_object,property,value)
+    def update_property(learning_object, property, value)
       if accepted_properties.include? property
         connection.command "UPDATE LearningObject SET #{property}='#{value}' WHERE @rid = #{learning_object.id}"
       end
diff --git a/app/repositories/user_repository_proxy.rb b/app/repositories/user_repository_proxy.rb
index 27643d6e0d5d88182d8f86ba33e35e009557f805..ca65c093dab1d8f3eaa898225ae838861d3fcc66 100644
--- a/app/repositories/user_repository_proxy.rb
+++ b/app/repositories/user_repository_proxy.rb
@@ -48,7 +48,7 @@ class UserRepositoryProxy
   def update_user_refs(user)
     rid = get_graph_id user
     user.rid = rid
-    user.save!
+    save user
   end
 
   def check_references(user)
diff --git a/app/views/learning_objects/_actions_buttons.html.erb b/app/views/learning_objects/_actions_buttons.html.erb
index 23ca78e5048d333ba161b35bab64650b0db67b75..eb1d2c5eedb830378a2cd4fe39b9124154bff8b9 100644
--- a/app/views/learning_objects/_actions_buttons.html.erb
+++ b/app/views/learning_objects/_actions_buttons.html.erb
@@ -1,5 +1,5 @@
 <div class="learning-object-actions">
-  <%= render 'learning_objects/like_button' %>
+  <%= render 'learning_objects/like_button', learning_object: learning_object %>
   <%= render 'learning_objects/bookmarks_button' %>
   <%= render 'learning_objects/collections_button' %>
 </div>
\ No newline at end of file
diff --git a/app/views/learning_objects/_learning_object_horizontal.erb b/app/views/learning_objects/_learning_object_horizontal.erb
index ab1cb73e934fabb161d5d2ab431878d2a3b1d7da..96f29ce57f43e516bda32d58545f28b524032fd2 100644
--- a/app/views/learning_objects/_learning_object_horizontal.erb
+++ b/app/views/learning_objects/_learning_object_horizontal.erb
@@ -8,7 +8,7 @@
         end %>
 
         <% if user_signed_in? %>
-            <%= render 'learning_objects/actions_buttons' %>
+            <%= render 'learning_objects/actions_buttons', learning_object: learning_object %>
         <% end %>
       </div>
     </div>
diff --git a/app/views/learning_objects/_learning_object_vertical.erb b/app/views/learning_objects/_learning_object_vertical.erb
index 6084b3a027e37116e74e3dafe1c96946996e5b80..e6241383bda734cdcc96a9eef6ef190d7d687d50 100644
--- a/app/views/learning_objects/_learning_object_vertical.erb
+++ b/app/views/learning_objects/_learning_object_vertical.erb
@@ -5,14 +5,14 @@
         learning_object_thumbnail learning_object
       end %>
       <% if user_signed_in? %>
-          <%= render 'learning_objects/actions_buttons' %>
+          <%= render 'learning_objects/actions_buttons', learning_object: learning_object %>
       <% end %>
     </div>
     <div class="panel-body">
       <h4 class="media-heading"><%= learning_object_title(learning_object) %></h4>
-      <span class="glyphicon glyphicon-eye-open"><%= learning_object.views %>&nbsp;</span>
-      <span class="glyphicon glyphicon-star"><%= learning_object.likes %>&nbsp;</span>
+      <span class="glyphicon glyphicon-eye-open"><%= learning_object.views %></span>
+      <span class="glyphicon glyphicon-star votes-count" data-id="<%= learning_object.id %>"><%= learning_object.likes %></span>
       <span class="author-label">Por <%= learning_object.get_metadata_value_of("dc.contributor.author") %></span>
     </div>
   </div>
-</div>
+</div>
\ No newline at end of file
diff --git a/app/views/learning_objects/_like_button.html.erb b/app/views/learning_objects/_like_button.html.erb
index b59543135607e64f8cf73b6360e17d1d8850f346..45a5e00594c3d1309068f409a1fa4466f28321af 100644
--- a/app/views/learning_objects/_like_button.html.erb
+++ b/app/views/learning_objects/_like_button.html.erb
@@ -1,3 +1,3 @@
-<button type="button" class="btn btn-primary btn-xs" data-toggle="button" aria-pressed="false" autocomplete="off" title="Gostei">
-  <span class="glyphicon glyphicon-thumbs-up" aria-hidden="true"></span>
-</button>
\ No newline at end of file
+<%= link_to like_learning_object_path(id: learning_object.id), class: 'btn btn-primary btn-xs vote', method: :post, remote: true do %>
+    <span class="glyphicon glyphicon-thumbs-up" aria-hidden="true"></span>
+<% end %>
\ No newline at end of file