Я пытаюсь создать страницу профиля пользователя, но у меня проблемы. Я использовал 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
Изучая некоторые примеры, я заметил хэштег. Когда я добавил # к моему url, состояния маршрута начали работать. Затем я использовал html5mode, чтобы удалить #, и теперь он работает нормально.