Я добавляю навигационное меню в application.html.erb
, которое перемещается по пользователям в authlogic.Все маршрутизаторы, такие как:: logout,: register и: login, кажется, работают с пользовательскими путями.
match 'account/login' => 'user_sessions#new', :as => :login
match 'account/logout' => 'user_sessions#destroy', :as => :logout
match 'register' => 'users#new', :as => :register
Вот меню навигации:
<% if current_user %>
<%= link_to "Edit Profile", edit_user_path(current_user.id)%> <%=h current_user.firstname %>
<%= link_to "Logout", :logout %>
<% else %>
<%= link_to "Register", :register %> |
<%= link_to "Login", :login %>
<% end %>
Но edit_user_path переводит меня в /users/:id/edit
,Как мне сделать хороший URL для этого пути.Я хотел бы сделать это /account/edit
.Также необходимо отключить этот путь /users/:id/edit
, чтобы пользователь не запрашивал другой идентификатор пользователя, который ему не принадлежит.Стоит выбросить 404 страницы идеально.
Текущие пути в навигационном меню:
Выйти: /account/logout
Логин: /account/login
Регистрация: /register
Я хотел бы иметь другой путь для edit_user_path:
Редактировать профиль: /account/edit
Есть ли способ, которым я могу просто использовать edit_user_path (current_user.id) и путь автоматически переводит меня в / account / edit и отключает запрос идентификатора.
Любая помощь будет принята с благодарностью!Спасибо!
[Обновлено] Это моя /config/router.rb
Appcatous::Application.routes.draw do
resources :users, :user_sessions
match "account" => "users#show", :as => :account
match 'account/login' => 'user_sessions#new', :as => :login
match 'account/logout' => 'user_sessions#destroy', :as => :logout
end
users.rb модель очень проста:
class User < ActiveRecord::Base
acts_as_authentic
validates :firstname, :presence => true
validates :lastname, :presence => true
end