Nei*_*luj 5 ruby ruby-on-rails devise ruby-on-rails-4
作为使用 Rails 进行开发的新手,我正在尝试了解以下内容:我正在使用 Devise + Cancan + olify 应用程序来尝试创建身份验证和用户管理。我对一般用户行为进行了排序,并且我正在尝试实现管理员用户能够编辑另一个用户配置文件。
目前,管理员用户可以列出用户并尝试编辑其他用户的个人资料。然而,当进入编辑页面时,尽管 URL/路由对我来说是正确的,但我仍然在表单中看到“当前用户”/管理员信息。
简而言之,场景是: UserId1 是管理员 UserId1 正在尝试编辑 UserId2 的个人资料
以 UserId1 记录,以下路由带来 UserId1 而不是 UserId2 的详细信息:
http://localhost:3000/d/users/edit.2
这是routes.rb:
devise_for :users, :path_prefix => 'd', :controllers => { :registrations => 'registrations' }
namespace :admin do
get '', to: 'dashboard#index', as: '/'
resources :users
end
Run Code Online (Sandbox Code Playgroud)
这是 users#index 视图:
<table>
<tbody>
<% @users.each do |user| %>
<tr>
<td><%= user.id %></td>
<td><%= user.first_name %></td>
<td><%= user.last_name %></td>
<td><%= user.email %></td>
<td>
<%= link_to edit_user_registration_path(user) %>
</td>
<td>
<%= link_to registration_path(user),class: "red", :data => { :confirm => "Are you sure?" }, :method => :delete %>
</td>
</tr>
<% end %>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
这是users_controller.rb:
class Admin::UsersController < ApplicationController
def index
@users = User.all
end
end
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏!
编辑1
rake routes给了我以下内容:
Prefix Verb URI Pattern Controller#Action
new_user_session GET /d/users/sign_in(.:format) devise/sessions#new
user_session POST /d/users/sign_in(.:format) devise/sessions#create
destroy_user_session DELETE /d/users/sign_out(.:format) devise/sessions#destroy
user_password POST /d/users/password(.:format) devise/passwords#create
new_user_password GET /d/users/password/new(.:format) devise/passwords#new
edit_user_password GET /d/users/password/edit(.:format) devise/passwords#edit
PATCH /d/users/password(.:format) devise/passwords#update
PUT /d/users/password(.:format) devise/passwords#update
cancel_user_registration GET /d/users/cancel(.:format) registrations#cancel
user_registration POST /d/users(.:format) registrations#create
new_user_registration GET /d/users/sign_up(.:format) registrations#new
edit_user_registration GET /d/users/edit(.:format) registrations#edit
PATCH /d/users(.:format) registrations#update
PUT /d/users(.:format) registrations#update
DELETE /d/users(.:format) registrations#destroy
user_confirmation POST /d/users/confirmation(.:format) devise/confirmations#create
new_user_confirmation GET /d/users/confirmation/new(.:format) devise/confirmations#new
GET /d/users/confirmation(.:format) devise/confirmations#show
user_unlock POST /d/users/unlock(.:format) devise/unlocks#create
new_user_unlock GET /d/users/unlock/new(.:format) devise/unlocks#new
GET /d/users/unlock(.:format) devise/unlocks#show
root GET / pages#home
about GET /about(.:format) pages#about
admin GET /admin(.:format) admin/dashboard#index
admin_users GET /admin/users(.:format) admin/users#index
POST /admin/users(.:format) admin/users#create
new_admin_user GET /admin/users/new(.:format) admin/users#new
edit_admin_user GET /admin/users/:id/edit(.:format) admin/users#edit
admin_user GET /admin/users/:id(.:format) admin/users#show
PATCH /admin/users/:id(.:format) admin/users#update
PUT /admin/users/:id(.:format) admin/users#update
DELETE /admin/users/:id(.:format) admin/users#destroy
Run Code Online (Sandbox Code Playgroud)
<%= link_to edit_user_registration_path(user) %>
Run Code Online (Sandbox Code Playgroud)
仍然指向你的设计路线,它应该是:
<%= link_to edit_admin_user_path(user) %>
Run Code Online (Sandbox Code Playgroud)
这在耙子路线中进行了描述。
| 归档时间: |
|
| 查看次数: |
3174 次 |
| 最近记录: |