ui-router, devise и страница профиля пользователя

0

Я пытаюсь создать страницу профиля пользователя, но у меня проблемы. Я использовал 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.

И это маршруты.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
Теги:
angular-ui-router
devise

1 ответ

0

Изучая некоторые примеры, я заметил хэштег. Когда я добавил # к моему url, состояния маршрута начали работать. Затем я использовал html5mode, чтобы удалить #, и теперь он работает нормально.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню