upto 3.11: added option to join to beerclub

This commit is contained in:
Aaro Koivukangas
2023-08-10 21:07:37 +03:00
parent cb57e9643c
commit 9ff0b5acc5
3 changed files with 13 additions and 2 deletions
@@ -30,6 +30,9 @@ class MembershipsController < ApplicationController
format.html { redirect_to membership_url(@membership), notice: "Membership was successfully created." } format.html { redirect_to membership_url(@membership), notice: "Membership was successfully created." }
format.json { render :show, status: :created, location: @membership } format.json { render :show, status: :created, location: @membership }
else else
# TODO maybe doing something wrong but the variables of new need to be reinitialized here :D
@users = User.all
@beerclubs = Beerclub.all
format.html { render :new, status: :unprocessable_entity } format.html { render :new, status: :unprocessable_entity }
format.json { render json: @membership.errors, status: :unprocessable_entity } format.json { render json: @membership.errors, status: :unprocessable_entity }
end end
+8
View File
@@ -1,4 +1,12 @@
class Membership < ApplicationRecord class Membership < ApplicationRecord
belongs_to :user belongs_to :user
belongs_to :beerclub belongs_to :beerclub
validate :user_not_in_club
def user_not_in_club
if not Membership.find_by(user_id:user_id, beerclub_id:beerclub_id).nil?
errors.add :user_id, "is already in the beerclub"
end
end
end end
+2 -2
View File
@@ -12,8 +12,8 @@
<% end %> <% end %>
<div> <div>
<%= form.label :user_id, style: "display: block" %> <%= form.label :user_id, style: "display: block" %>
<%= form.select :user_id, options_from_collection_for_select(@users, :id, :username) %> <%= form.select :user_id, options_from_collection_for_select(@users, :id, :username) %>
</div> </div>
<div> <div>