diff --git a/app/models/invitation.rb b/app/models/invitation.rb index e4910a5..cfff859 100644 --- a/app/models/invitation.rb +++ b/app/models/invitation.rb @@ -1,6 +1,7 @@ class Invitation < ApplicationRecord # Relations belongs_to :user + belongs_to :invitee, class_name: "User", foreign_key: 'invited_user_id', optional: true # Validations validates_presence_of :user diff --git a/app/models/user.rb b/app/models/user.rb index b8226ff..dde6c1c 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -3,6 +3,10 @@ class User < ApplicationRecord # Relations has_many :invitations, dependent: :destroy + has_one :invitation, inverse_of: :invitee, foreign_key: 'invited_user_id' + has_one :inviter, through: :invitation, source: :user + has_many :invitees, through: :invitations + has_many :donations, dependent: :nullify has_one :lndhub_user, class_name: "LndhubUser", inverse_of: "user", diff --git a/app/views/admin/invitations/index.html.erb b/app/views/admin/invitations/index.html.erb index a49491e..51905c0 100644 --- a/app/views/admin/invitations/index.html.erb +++ b/app/views/admin/invitations/index.html.erb @@ -38,8 +38,8 @@ <%= invitation.token %> <%= invitation.used_at.strftime("%Y-%m-%d (%H:%M UTC)") %> - <%= invitation.user.address %> - <%= User.find(invitation.invited_user_id).address %> + <%= link_to invitation.user.address, admin_user_path(invitation.user.address), class: "ks-text-link" %> + <%= link_to invitation.invitee.address, admin_user_path(invitation.invitee.address), class: "ks-text-link" %> <% end %> diff --git a/app/views/admin/users/show.html.erb b/app/views/admin/users/show.html.erb index ef8dda2..5354ef0 100644 --- a/app/views/admin/users/show.html.erb +++ b/app/views/admin/users/show.html.erb @@ -19,7 +19,11 @@ Invited by - <%= @inviter ? link_to(@inviter.address, admin_user_path(@inviter.address), class: 'ks-text-link') : "—" %> + + <% if @user.inviter %> + <%= link_to @user.inviter.address, admin_user_path(@user.inviter.address), class: 'ks-text-link' %> + <% else %>—<% end %> +