summaryrefslogtreecommitdiff
path: root/app/controllers/characters_controller.rb
diff options
context:
space:
mode:
authorDavid Gay <david@davidgay.org>2021-05-02 20:56:19 -0400
committerDavid Gay <david@davidgay.org>2021-05-02 20:56:19 -0400
commit1d5083ddf7f2b285e63bb8019d38199e862fa1d8 (patch)
tree6be0357a5e55f78faa94afbe9db025e0703f2f3b /app/controllers/characters_controller.rb
parentcd04bcc4b4e4f5174d2f042bfcf6b840e6e18fee (diff)
Login with forced character creation, views, etc
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