Adds JoinedUserActivity model to associate users to every activities they created

This commit is contained in:
Lou 2021-04-29 21:03:52 +02:00
commit 99747e3f2d
9 changed files with 63 additions and 3 deletions

View file

@ -13,6 +13,10 @@ class Api::V1::ActivitiesController < ApplicationController
def create
activity = current_user.created_activities.build(activity_params)
if activity.save
JoinedUserActivity.create!(
user_id: current_user.id,
activity_id: activity.id
)
render json: activity, status: :created
else
render json: { errors: activity.errors }, status: :unprocessable_entity

View file

@ -1,6 +1,9 @@
class Activity < ApplicationRecord
belongs_to :author, class_name: "User"
has_one :joined_user_activities
has_one :user, :through => :joined_user_activities
validates :name, presence: true
validates :author, presence: true
end

View file

@ -0,0 +1,4 @@
class JoinedUserActivity < ApplicationRecord
belongs_to :user
belongs_to :activity
end

View file

@ -5,5 +5,9 @@ class User < ApplicationRecord
validates :password_digest, presence: true
has_many :created_activities, foreign_key: 'author_id', class_name: 'Activity', dependent: :destroy
has_many :joined_user_activities
has_many :activities, :through => :joined_user_activities
has_secure_password
end