{"id":1109,"date":"2015-08-04T04:42:32","date_gmt":"2015-08-04T04:42:32","guid":{"rendered":"http:\/\/www.honobono-life.info\/wpeng\/?p=1109"},"modified":"2015-08-04T04:42:32","modified_gmt":"2015-08-04T04:42:32","slug":"log-out-with-angularjs","status":"publish","type":"post","link":"http:\/\/www.honobono-life.info\/wpeng\/log-out-with-angularjs\/","title":{"rendered":"Ruby on Rails Tutorial log out with AngularJS"},"content":{"rendered":"<p><strong>1)Rails route<\/strong><\/p>\r\n\r\n<p>$ rake routes<\/p>\r\n\r\n<p>match &#39;\/app\/sessions&#39;, to: &#39;sessions#destroy&#39;, via: &#39;delete&#39;<\/p>\r\n\r\n<p><strong>2)AngularJS &quot;sessionResource&quot; service<\/strong><\/p>\r\n\r\n<p>$ vi app\/assets\/javascripts\/mymodule.js.erb<\/p>\r\n\r\n<pre class=\"prettyprint\">\r\nmyModule.factory(&quot;sessionResource&quot;, function($resource) {\r\n  return $resource(&quot;\/app\/sessions&quot;, {},\r\n    {\r\n      &#39;create&#39;:  { method: &#39;POST&#39; },\r\n      &#39;destroy&#39;: { method: &#39;DELETE&#39; },\r\n      &#39;current_user&#39;: { method: &#39;GET&#39;, isArray: false }\r\n    }\r\n  );\r\n});<\/pre>\r\n\r\n<p><strong>3)Rails controller<\/strong><\/p>\r\n\r\n<p>$ vi app\/controllers\/sessions_controller.rb<\/p>\r\n\r\n<pre class=\"prettyprint\">\r\n  def destroy\r\n    cookies.delete(:remember_token)\r\n    head :no_content\r\n  end<\/pre>\r\n\r\n<p><strong>4)add link to navigation menu<\/strong><\/p>\r\n\r\n<p>$ vi app\/views\/layouts\/_header.html.erb<\/p>\r\n\r\n<p>&lt;li&gt;&lt;a href=&quot;&quot; ng-click=&quot;signout()&quot;&gt;Sign out&lt;\/a&gt;&lt;\/li&gt;<\/p>\r\n\r\n<p><strong>5)AngularJS controller<\/strong><\/p>\r\n\r\n<p>$ vi app\/assets\/javascripts\/mymodule.js.erb<\/p>\r\n\r\n<pre class=\"prettyprint\">\r\nfunction CollapseDemoCtrl($scope, flashService, sessionResource, $location) {\r\n  $scope.signout = function() {\r\n    sessionResource.destroy({}, function(response) {\r\n      flashService.setUser(null);\r\n      $location.path(&quot;\/&quot;);\r\n    });\r\n  };\r\n}<\/pre>","protected":false},"excerpt":{"rendered":"<p>1)Rails route $ rake routes match &#39;\/app\/sessions&#39;, to: &#39;sessions#destroy&#39;, via: &#39;delete&#39; 2)AngularJS &quot;sessionResource&quot; service $ vi app\/assets\/javascripts\/mymodule.js.erb myModule.factory(&quot;sessionResource&quot;, function($resource) { return $resource(&quot;\/app\/sessions&quot;, {}, { &#39;create&#39;: { method: &#39;POST&#39; }, &#39;destroy&#39;: { method: &#39;DELETE&#39; }, &#39;current_user&#39;: { method: &#39;GET&#39;, isArray: false } } ); }); 3)Rails controller $ vi app\/controllers\/sessions_controller.rb def destroy cookies.delete(:remember_token) head :no_content end [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[137],"tags":[35,165,145,164],"amp_enabled":true,"_links":{"self":[{"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/posts\/1109"}],"collection":[{"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/comments?post=1109"}],"version-history":[{"count":1,"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/posts\/1109\/revisions"}],"predecessor-version":[{"id":1110,"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/posts\/1109\/revisions\/1110"}],"wp:attachment":[{"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/media?parent=1109"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/categories?post=1109"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/tags?post=1109"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}