저는 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] 삭제
몇 마디 만하겠습니다