Skip to content

Commit

Permalink
fix controllers and routes
Browse files Browse the repository at this point in the history
  • Loading branch information
williamscch committed Nov 16, 2022
1 parent b3400b9 commit 8ae856c
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 17 deletions.
23 changes: 17 additions & 6 deletions app/controllers/expenses_controller.rb
Original file line number Diff line number Diff line change
@@ -1,29 +1,32 @@
class ExpensesController < ApplicationController
before_action :set_user
before_action :set_group
before_action :set_expense, only: %i[show edit update destroy]

# GET /expenses or /expenses.json
def index
@expenses = Expense.all
@expenses = @group.expenses
end

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

# GET /expenses/new
def new
@expense = Expense.new
@expense = @user.expenses.new
@expense.group_id = @group.id
end

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

# POST /expenses or /expenses.json
def create
@expense = Expense.new(expense_params)
@expense = @user.expenses.new(expense_params)

respond_to do |format|
if @expense.save
format.html { redirect_to expense_url(@expense), notice: 'Expense was successfully created.' }
format.html { redirect_to group_path(@expense.group_id), notice: 'Expense was successfully created.' }
format.json { render :show, status: :created, location: @expense }
else
format.html { render :new, status: :unprocessable_entity }
Expand All @@ -36,7 +39,7 @@ def create
def update
respond_to do |format|
if @expense.update(expense_params)
format.html { redirect_to expense_url(@expense), notice: 'Expense was successfully updated.' }
format.html { redirect_to group_url(@group), notice: 'Expense was successfully updated.' }
format.json { render :show, status: :ok, location: @expense }
else
format.html { render :edit, status: :unprocessable_entity }
Expand All @@ -50,13 +53,21 @@ def destroy
@expense.destroy

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

private

def set_user
@user = current_user
end

def set_group
@group = Group.find(params[:group_id])
end

# Use callbacks to share common setup or constraints between actions.
def set_expense
@expense = Expense.find(params[:id])
Expand Down
17 changes: 12 additions & 5 deletions app/controllers/groups_controller.rb
Original file line number Diff line number Diff line change
@@ -1,25 +1,28 @@
class GroupsController < ApplicationController
before_action :set_user
before_action :set_group, only: %i[show edit update destroy]

# GET /groups or /groups.json
def index
@groups = Group.all
@groups = @user.groups
end

# GET /groups/1 or /groups/1.json
def show; end
def show
@expenses = @group.expenses.order(created_at: :desc)
end

# GET /groups/new
def new
@group = Group.new
@group = @user.groups.new
end

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

# POST /groups or /groups.json
def create
@group = Group.new(group_params)
@group = @user.groups.new(group_params)

respond_to do |format|
if @group.save
Expand Down Expand Up @@ -57,13 +60,17 @@ def destroy

private

def set_user
@user = current_user
end

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

# Only allow a list of trusted parameters through.
def group_params
params.require(:group).permit(:name, :icon, :user_id)
params.require(:group).permit(:name, :icon)
end
end
4 changes: 3 additions & 1 deletion app/controllers/users_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ def index
@users = User.all
end

def splash; end

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

Expand Down Expand Up @@ -59,7 +61,7 @@ def destroy

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

# Only allow a list of trusted parameters through.
Expand Down
18 changes: 13 additions & 5 deletions config/routes.rb
Original file line number Diff line number Diff line change
@@ -1,10 +1,18 @@
Rails.application.routes.draw do
devise_for :users
resources :expenses
resources :groups
resources :users
# Define your application routes per the DSL in https://guides.rubyonrails.org/routing.html

authenticated :user do
root to: 'categories#index', as: :authenticated_root
end

resources :groups do
resources :expenses, only: %i[new create edit update]
end
resources :users, only: %i[edit update]
# Define your application routes per the DSL in https://guides.rubyonrails.org/routing.html
devise_scope :user do
get '/users/sign_out', to: 'devise/sessions#destroy'
end
# Defines the root path route ("/")
root to:"users#index"
root 'users#splash'
end

0 comments on commit 8ae856c

Please sign in to comment.