[英]ui-router, devise and a user profile page
我正在尝试创建用户个人资料页面,但是遇到了一些问题。 我在项目中使用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时,home状态起作用
但是就像我说的那样,当我转到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
通过研究一些示例,我注意到了主题标签。 当我在网址中添加#时,路由状态开始起作用。 然后,我使用启用了html5mode的方法来删除#,现在它可以正常工作了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.