【问题标题】:ui-router, devise and a user profile pageui-router,设计和用户配置文件页面
【发布时间】: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


    【解决方案1】:

    研究了一些例子,我注意到了这个标签。当我将 # 添加到我的 url 时,路由状态开始工作。然后我使用 html5mode enabled 来删除#,现在它工作正常了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-11
      • 2016-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-30
      相关资源
      最近更新 更多