我是 Ruby on Rails 的新手。我想运行http://localhost:3000/admin/users来查看用户索引页面。但是当我运行这个链接时,它引导我到http://localhost:3000/admin/login。
我的路线设置有问题吗?
Rails.application.routes.draw do
get 'users/new'
get 'users/show'
if Rails.env.development?
mount LetterOpenerWeb::Engine, at: '/letter_opener'
end
root to: 'helps#top'
# admin login
get 'admin/login', to: 'admin/login#index', as: 'admin/login'
get 'admin/logout', to: 'admin/login#logout'
post 'admin/login/login'
get 'admin', to: 'admin/projects#index', as: 'admin_top'
namespace :admin do
resources :users, only: %i(index new create)
resources :projects do
resources :project_users
resources :project_comments
end
resources :images
resources :categories
resources :campanies
end
end
class Admin::UsersController < AdminController
before_action :set_user, only: [:show, :edit, :update, :destroy]
def index
@users = User.all
end
def show
end
def new
@user = User.new
end
def edit
end
#Post /admin/projects
def create
@user = User.new(user_params)
if @user.save
flash[:notice] = 'User saved successfully'
redirect_to :back
else
flash[:alert] = @user.errors
binding.pry
render :new
end
end
def update
end
def destroy
end
private
def set_user
@user = User.find(params [:id])
end
def user_params
params.require(:user).permit(:campany_id, :name, :email, :password_digest, :profile, :prefecture_id, :address)
end
end
谢谢!
您UsersControllers
位于 admin 命名空间下,也就是说您必须登录才能访问它。
如果你想在不验证用户当前登录的情况下访问,那么你必须删除对控制器的约束或验证,或者创建一个新的控制器和索引方法,/admin/users
但这次没有用户验证。
那是:
# app/controllers/users_controller.rb
class UsersController < ApplicationController
...
def index
@users = User.all
end
...
end
# config/routes.rb
get '/users', to: 'users#index'
'/users'
或者'/admin/users'
你想这样做,但如果你使用最后一个,那么任何人都必须推断出这是一个受限资源。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句