{"id":1072,"date":"2015-07-31T10:25:11","date_gmt":"2015-07-31T10:25:11","guid":{"rendered":"http:\/\/www.honobono-life.info\/wpeng\/?p=1072"},"modified":"2015-08-01T00:16:25","modified_gmt":"2015-08-01T00:16:25","slug":"angularjs-resource-server-side-data","status":"publish","type":"post","link":"http:\/\/www.honobono-life.info\/wpeng\/angularjs-resource-server-side-data\/","title":{"rendered":"Ruby on Rails Tutorial AngularJS $resource, server-side data"},"content":{"rendered":"<p><strong>1)Rails model, migration, test data<\/strong><\/p>\r\n\r\n<p><strong>1.Rails model<\/strong><\/p>\r\n\r\n<p>$ rails generate model User name:string email:string<\/p>\r\n\r\n<p><strong>2.migration<\/strong><\/p>\r\n\r\n<p>$ rake db:migrate<\/p>\r\n\r\n<p><strong>3.test data<\/strong><\/p>\r\n\r\n<p>$ rails c<\/p>\r\n\r\n<p>User.create(name: &quot;testuser1&quot;, email: &quot;test1@example.com&quot;)<br \/>\r\nUser.create(name: &quot;testuser2&quot;, email: &quot;test2@example.com&quot;)<br \/>\r\nUser.create(name: &quot;testuser3&quot;, email: &quot;test3@example.com&quot;)<\/p>\r\n\r\n<p><strong>2)Rails controller<\/strong><\/p>\r\n\r\n<p><strong>1.generate controller<\/strong><\/p>\r\n\r\n<p>$ rails generate controller Users<\/p>\r\n\r\n<p><strong>2.index action<\/strong><\/p>\r\n\r\n<p>$ vi app\/controllers\/users_controller.rb<\/p>\r\n\r\n<pre class=\"prettyprint\">\r\n  def index\r\n    @users = User.all\r\n    render json: @users\r\n  end<\/pre>\r\n\r\n<p><strong>3)Rails resource route<\/strong><\/p>\r\n\r\n<p>$ vi config\/routes.rb<\/p>\r\n\r\n<pre class=\"prettyprint\">\r\n  scope &#39;\/app&#39; do\r\n    resources :users\r\n  end\r\n<\/pre>\r\n\r\n<p><strong>4)AngularJS $resource<\/strong><\/p>\r\n\r\n<p><strong>1.angular-resource include<\/strong><\/p>\r\n\r\n<p>$ vi app\/assets\/javascripts\/application.js<\/p>\r\n\r\n<p>\/\/= require angular-resource<\/p>\r\n\r\n<p><strong>2.ngResource DI<\/strong><\/p>\r\n\r\n<p>$ vi app\/assets\/javascripts\/mymodule.js.erb<\/p>\r\n\r\n<p>myModule = angular.module(&#39;myModule&#39;, [&#39;ui.bootstrap&#39;,&#39;ngRoute&#39;,&#39;ngResource&#39;]);<\/p>\r\n\r\n<p><strong>5)AngularJS route<\/strong><\/p>\r\n\r\n<p><strong>1.confirm Rails route<\/strong><\/p>\r\n\r\n<p>$ rake routes<br \/>\r\nusers GET &nbsp; &nbsp;\/app\/users(.:format) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; users#index<\/p>\r\n\r\n<p><strong>2.AngularJS route<\/strong><\/p>\r\n\r\n<p>$ vi app\/assets\/javascripts\/mymodule.js.erb<\/p>\r\n\r\n<pre class=\"prettyprint\">\r\n .when(&quot;\/users&quot;, {\r\n  templateUrl: &quot;&lt;%= asset_path(&#39;users\/index.html.erb&#39;) %&gt;&quot;\r\n  })<\/pre>\r\n\r\n<p><strong>6)AngularJS user index controller<\/strong><\/p>\r\n\r\n<p>$ vi app\/assets\/javascripts\/mymodule.js.erb<\/p>\r\n\r\n<pre class=\"prettyprint\">\r\nmyModule.controller(&quot;UsersIndexCtrl&quot;, function($scope,$resource) {\r\n  var rtn = $resource(&#39;\/app\/users&#39;);\r\n  $scope.users = rtn.query();\r\n});<\/pre>\r\n\r\n<p><strong>7)AngularJS index template view<\/strong><\/p>\r\n\r\n<p>$ vi app\/assets\/templates\/users\/index.html.erb<\/p>\r\n\r\n<div ng-non-bindable><pre class=\"prettyprint\">\r\n&lt;div ng-controller=&quot;UsersIndexCtrl&quot;&gt;\r\n&lt;h1&gt;index&lt;\/h1&gt;\r\n&lt;table class=&quot;table table-bordered&quot;&gt;\r\n  &lt;thead&gt;\r\n    &lt;td&gt;name&lt;\/td&gt;\r\n    &lt;td&gt;email&lt;\/td&gt;\r\n  &lt;\/thead&gt;\r\n  &lt;tbody&gt;\r\n    &lt;tr ng-repeat=&quot;user in users&quot;&gt;\r\n      &lt;td&gt;\r\n        {{user.name}}\r\n      &lt;\/td&gt;\r\n      &lt;td&gt;\r\n        {{user.email}}\r\n      &lt;\/td&gt;\r\n    &lt;\/tr&gt;\r\n  &lt;\/tbody&gt;\r\n&lt;\/table&gt;\r\n&lt;\/div&gt;<\/pre><\/div>\r\n\r\n<p><strong>8)add link to user index<\/strong><\/p>\r\n\r\n<p>$ vi app\/views\/layouts\/_header.html.erb<\/p>\r\n\r\n<p>&lt;li&gt;&lt;%= link_to &quot;Index&quot;, &quot;\/users&quot; %&gt;&lt;\/li&gt;<\/p>\r\n\r\n<p><strong>9)Rails route<\/strong><\/p>\r\n\r\n<p>*Problem<\/p>\r\n\r\n<p>1.&quot;http:\/\/localhost:3000\/users&quot;<br \/>\r\n2.browser reload<br \/>\r\n3.&quot;No route&quot; error<\/p>\r\n\r\n<p>*Avoidance<\/p>\r\n\r\n<p>$ vi config\/routes.rb<\/p>\r\n\r\n<p>get &#39;users&#39;, to: &#39;layouts#index&#39;<\/p>\r\n","protected":false},"excerpt":{"rendered":"<p>1)Rails model, migration, test data 1.Rails model $ rails generate model User name:string email:string 2.migration $ rake db:migrate 3.test data $ rails c User.create(name: &quot;testuser1&quot;, email: &quot;test1@example.com&quot;) User.create(name: &quot;testuser2&quot;, email: &quot;test2@example.com&quot;) User.create(name: &quot;testuser3&quot;, email: &quot;test3@example.com&quot;) 2)Rails controller 1.generate controller $ rails generate controller Users 2.index action $ vi app\/controllers\/users_controller.rb def index @users = User.all render [&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":[146,35,145],"amp_enabled":true,"_links":{"self":[{"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/posts\/1072"}],"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=1072"}],"version-history":[{"count":2,"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/posts\/1072\/revisions"}],"predecessor-version":[{"id":1082,"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/posts\/1072\/revisions\/1082"}],"wp:attachment":[{"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/media?parent=1072"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/categories?post=1072"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.honobono-life.info\/wpeng\/wp-json\/wp\/v2\/tags?post=1072"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}