【发布时间】:2015-10-28 03:20:50
【问题描述】:
我正在尝试在我经历的angular-rails tutorial 上实现用户的个人资料页面。我有以下顺序:
/javascripts/users/_users.html
User's Profile Page
{{user.email}}
/javascripts/users/users.js
angular.module('flapperNews').factory('users', ['$http', function($http){
var o = {
users: []
};
o.get = function(id) {
return $http.get('/users/' + id + '.json').then(function(res){
return res.data;
});
};
return o;
}])
/javascripts/users/usersCtrl.js
angular.module('flapperNews')
.controller('UsersCtrl', [
'$scope',
'users',
'user',
function($scope, users, user){
$scope.user = user;
}])
我的app.js 状态反映了这种变化:
.state('users', {
url: '/users/{id}',
templateUrl: 'users/_users.html',
controller: 'UsersCtrl',
resolve: {
post: ['$stateParams', 'users', function($stateParams, users) {
return users.get($stateParams.id);
}]
}
})
而用户的控制器是这样的:
class UsersController < ApplicationController
respond_to :json
def show
respond_with User.find(params[:id])
end
end
还有路线:
Rails.application.routes.draw do
devise_for :users
devise_for :installs
root to: 'application#angular'
resources :posts, only: [:create, :index, :show] do
resources :comments, only: [:show, :create] do
member do
put '/upvote' => 'comments#upvote'
end
end
member do
put '/upvote' => 'posts#upvote'
end
end
resources :users
end
当使用user id = 2 登录并尝试点击个人资料页面时,它似乎通过了:
Started GET "/users/2.json" for ::1 at 2015-10-27 23:07:23 -0400
Processing by UsersController#show as JSON
Parameters: {"id"=>"2"}
User Load (0.1ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1 [["id", 2]]
Completed 200 OK in 5ms (Views: 0.6ms | ActiveRecord: 0.1ms)
但在实际页面上,我留下了硬编码:
User's Profile Page
{{user.email}}
我觉得我错过了一些简单的东西,有什么想法可能是错的吗?
【问题讨论】:
标签: ruby-on-rails json angularjs