summaryrefslogtreecommitdiff
path: root/app/controllers/characters_controller.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers/characters_controller.rb')
-rw-r--r--app/controllers/characters_controller.rb28
1 files changed, 28 insertions, 0 deletions
diff --git a/app/controllers/characters_controller.rb b/app/controllers/characters_controller.rb
new file mode 100644
index 0000000..d851ad5
--- /dev/null
+++ b/app/controllers/characters_controller.rb
@@ -0,0 +1,28 @@
+class CharactersController < ApplicationController
+ skip_before_action :redirect_if_no_active_character, only: [:new, :create]
+
+ def show
+ @character = Character.find(params[:id])
+ end
+
+ def new
+ @character = Character.new
+ end
+
+ def create
+ @character = Character.new(character_params)
+ @character.user = current_user
+ if @character.save
+ current_user.update(active_character: @character)
+ redirect_to @character
+ else
+ flash[:alert] = "Error creating character: #{@character.errors.full_messages.join(", ")}"
+ redirect_to action: :new
+ end
+ end
+
+ private
+ def character_params
+ params.require(:character).permit(:name)
+ end
+end