【发布时间】:2015-09-13 19:12:48
【问题描述】:
我正在尝试创建用户个人资料页面,但遇到了一些问题。我在我的项目中使用了 Devise 来处理用户,我正在使用 AngularJS 和 ui-router,显然还有 RoR。
我要做的是在访问以下 URL http://localhost:3000/users/1 时显示用户的个人资料页面
当我现在访问该 URL 时,我看到了我的首页 (views/layout/application.html.haml),这显然是错误的。
在我的 mainCtrl.js 中有
$stateProvider
.state('home', {
url: '',
templateUrl: '../assets/angular-app/templates/_search.html',
controller: 'searchCtrl'
})
.state('users.profile', {
url: '/users/{id}',
templateUrl: '../assets/angular-app/templates/_profile.html'
})
当我转到 localhost:3000 时,家庭状态有效
但就像我说的,当我转到http://localhost:3000/users/1 时,模板_profile.html 没有被插入,如果我输入错误的模板文件名,甚至不会出现错误。所以看起来状态动作没有做任何事情。
我的期望是模板 _profile.html 被加载到
%div{"ui-view" => ""}
在我的 application.html.haml 页面上。但它会插入 _search 模板。
如果重要的话,这就是 routes.rb,
Rails.application.routes.draw do
devise_for :users, :controllers => { :omniauth_callbacks => "callbacks" }
get 'sessions/create'
get 'sessions/destroy'
devise_scope :user do
root to: 'application#angular'
match '/sessions/user', to: 'devise/sessions#create', via: :post
end
resources :users do
member do
get :following, :followers
end
end
resources :relationships, only: [:create, :destroy]
get 'login/show'
get 'auth/:provider/callback', to: 'sessions#create'
get 'auth/failure', to: redirect('/')
get 'signout', to: 'sessions#destroy', as: 'signout'
resources :sessions, only: [:create, :destroy]
resources :movies, only: [:create, :destroy, :index, :show]
end
【问题讨论】:
标签: ruby-on-rails angularjs devise angular-ui-router