diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 5383b8e..b5ffab5 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -6,7 +6,7 @@ class UsersController < ApplicationController @user = User.new end def show - @user = User.find(params[:id]) + set_user end def create @user = User.new(user_params) @@ -16,8 +16,27 @@ class UsersController < ApplicationController render :new, status: :unprocessable_entity end end + def edit + set_user + end + def update + set_user + if @user.update(user_params) + redirect_to @user, notice: "Account successfully updated!" + else + render :new, status: :unprocessable_entity + end + end + def destroy + set_user + @user.destroy + redirect_to movies_url, status: :see_other, alert: "Account successfully deleted!" + end private + def set_user + @user = User.find(params[:id]) + end def user_params params.require(:user).permit(:name, :email, :password, :password_confirmation) diff --git a/app/views/users/_form.html.erb b/app/views/users/_form.html.erb index 3c9094a..04ce7b8 100644 --- a/app/views/users/_form.html.erb +++ b/app/views/users/_form.html.erb @@ -13,5 +13,9 @@ <%= f.label :password_confirmation, "Confirm Password" %> <%= f.password_field :password_confirmation %> - <%= f.submit %> + <% if user.new_record? %> + <%= f.submit "Create Account" %> + <% else %> + <%= f.submit "Update Account" %> + <% end %> <% end %> diff --git a/app/views/users/edit.html.erb b/app/views/users/edit.html.erb new file mode 100644 index 0000000..ac55f9a --- /dev/null +++ b/app/views/users/edit.html.erb @@ -0,0 +1,3 @@ +

Edit Account

+ +<%= render "form", user: @user %> diff --git a/app/views/users/show.html.erb b/app/views/users/show.html.erb index 10db66c..e698faf 100644 --- a/app/views/users/show.html.erb +++ b/app/views/users/show.html.erb @@ -1,4 +1,8 @@

<%= @user.name %>

<%= mail_to(@user.email) %>

+
+ <%= link_to "Edit Account", edit_user_path(@user), class: "button edit" %> + <%= link_to "Delete Account", user_path(@user), class: "button delete", data: { turbo_method: :delete, turbo_confirm: "Permanently delete your account!?" } %> +