(1)Rails controller
$ vi app/controllers/microposts_controller.rb
before_action :signed_in_user, only: [:create, :destroy] before_action :correct_user, only: :destroy def destroy Micropost.find(params[:id]).destroy head :no_content end
(2)add link to views
$ vi app/assets/templates/static_pages/home.html.erb
$ vi app/assets/templates/users/show.html.erb
..... <small class="text-muted">Posted {{mp.created_at | date:'medium'}}</sm all> <span ng-show="chkSignin().user.id == mp.user_id"><a href="" ng-click="delete(mp.id)">delete</a></span> .....
(3)AngularJS controller
1)User Profile page "UsersShowCtrl" controller
$ vi app/assets/javascripts/mymodule.js.erb
myModule.controller("UsersShowCtrl", function($scope, $routeParams, userResource,flashService,micropostsResource) { $scope.chkSignin = function() { return flashService.getUser(); }; $scope.delete = function(id) { micropostsResource.destroy({ id: id }); userResource.show({ id: $routeParams.id }, function(response) { $scope.user_info = response; $scope.totalitems = $scope.user_info.microposts.length; microposts = $filter('orderBy')($scope.user_info.microposts,'created_at',true); $scope.currentitems = microposts.slice(start,end); flashService.setUser(response); }); }; });
2)Home page "HomeCtrl" controller
$scope.delete = function(id) { micropostsResource.destroy({ id: id }); sessionResource.current_user({}, function(response) { tmp_feed = response.feed; $scope.totalitems = tmp_feed.length; feed_items = $filter('orderBy')(tmp_feed,'created_at',true); $scope.currentitems = feed_items.slice(start,end); flashService.setUser(response); }); };