Skip to content

Commit

Permalink
Define routes for user, category, and entity resources
Browse files Browse the repository at this point in the history
•	Added the devise_for :users route to handle user authentication routes provided by Devise.
•	Added a get route for the /splash URL, directing it to the splashes#index action.
•	Defined routes within the devise_scope block to handle root URLs for authenticated and unauthenticated users.
•	For authenticated users, set the root URL to categories#index action and name it authenticated_root.
•	For unauthenticated users, set the root URL to splashes#index action and name it unauthenticated_root.
•	Created nested routes for user resources, allowing routes for categories and entities that are associated with a user.
•	Restricted the routes for users to only the index, show, and new actions.
•	Restricted the routes for categories to only the new, create, show, index, and destroy actions.
•	Restricted the routes for entities to only the new, create, index, show, and destroy actions.
  • Loading branch information
Lucas-Erkana committed Jul 10, 2023
1 parent b1e3d26 commit c2cf853
Showing 1 changed file with 11 additions and 59 deletions.
70 changes: 11 additions & 59 deletions app/controllers/users_controller.rb
Original file line number Diff line number Diff line change
@@ -1,69 +1,21 @@
class UsersController < ApplicationController
before_action :set_user, only: %i[show edit update destroy]
Rails.application.routes.draw do
devise_for :users

# GET /users or /users.json
def index
@users = User.all
end

# GET /users/1 or /users/1.json
def show; end

# GET /users/new
def new
@user = User.new
end
get '/splash', to: 'splashes#index'

# GET /users/1/edit
def edit; end

# POST /users or /users.json
def create
@user = User.new(user_params)

respond_to do |format|
if @user.save
format.html { redirect_to user_url(@user), notice: 'User was successfully created.' }
format.json { render :show, status: :created, location: @user }
else
format.html { render :new, status: :unprocessable_entity }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
devise_scope :user do
authenticated :user do
root 'categories#index', as: :authenticated_root
end
end

# PATCH/PUT /users/1 or /users/1.json
def update
respond_to do |format|
if @user.update(user_params)
format.html { redirect_to user_url(@user), notice: 'User was successfully updated.' }
format.json { render :show, status: :ok, location: @user }
else
format.html { render :edit, status: :unprocessable_entity }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
unauthenticated do
root "splashes#index", as: :unauthenticated_root
end
end

# DELETE /users/1 or /users/1.json
def destroy
@user.destroy

respond_to do |format|
format.html { redirect_to users_url, notice: 'User was successfully destroyed.' }
format.json { head :no_content }
end
end

private

# Use callbacks to share common setup or constraints between actions.
def set_user
@user = User.find(params[:id])
end

# Only allow a list of trusted parameters through.
def user_params
params.require(:user).permit(:name)
resources :users, only: [:index, :show, :new] do
resources :categories, only: [:new, :create, :show, :index, :destroy]
resources :entities, only: [:new, :create, :index, :show, :destroy]
end
end

0 comments on commit c2cf853

Please sign in to comment.