From 7bdfb410589e679720599a36c1f1e2129f786850 Mon Sep 17 00:00:00 2001 From: Aaro Koivukangas Date: Mon, 20 Nov 2023 15:17:25 +0200 Subject: [PATCH] 5.8 beerclub join button is not shown if user already in group --- app/controllers/beerclubs_controller.rb | 1 + app/controllers/memberships_controller.rb | 2 +- app/views/beerclubs/show.html.erb | 13 +++++++++---- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/app/controllers/beerclubs_controller.rb b/app/controllers/beerclubs_controller.rb index ea162e1..bfd3ddb 100644 --- a/app/controllers/beerclubs_controller.rb +++ b/app/controllers/beerclubs_controller.rb @@ -9,6 +9,7 @@ class BeerclubsController < ApplicationController # GET /beerclubs/1 or /beerclubs/1.json def show + @membership = @beerclub.memberships.find_by user_id: current_user end # GET /beerclubs/new diff --git a/app/controllers/memberships_controller.rb b/app/controllers/memberships_controller.rb index 5c7d703..b04f983 100644 --- a/app/controllers/memberships_controller.rb +++ b/app/controllers/memberships_controller.rb @@ -27,7 +27,7 @@ class MembershipsController < ApplicationController respond_to do |format| if @membership.save - format.html { redirect_to membership_url(@membership), notice: "Membership was successfully created." } + format.html { redirect_to membership_url(@membership), notice: "Successfully joined the beerclub." } format.json { render :show, status: :created, location: @membership } else # TODO maybe doing something wrong but the variables of new need to be reinitialized here :D diff --git a/app/views/beerclubs/show.html.erb b/app/views/beerclubs/show.html.erb index 40aa499..dfc3cc6 100644 --- a/app/views/beerclubs/show.html.erb +++ b/app/views/beerclubs/show.html.erb @@ -4,11 +4,16 @@
<% if current_user %> - <%= form_with model: Membership.new do |form| %> - <%= form.hidden_field :beerclub_id, value: @beerclub.id %> - <%= form.hidden_field :user_id, value: current_user.id %> - <%= form.submit "Join the beer club" %> + <% if @membership.nil? %> + <%= form_with model: Membership.new do |form| %> + <%= form.hidden_field :beerclub_id, value: @beerclub.id %> + <%= form.hidden_field :user_id, value: current_user.id %> + <%= form.submit "Join the beer club" %> + <% end %> + <% else %> +

You are already in this group

<% end %> + <% else %>

Log in to join this beerclub

<% end %>