This commit is contained in:
2026-03-21 04:32:07 +09:00
parent 8cf7107445
commit d39b99f0ab
6 changed files with 296 additions and 50 deletions
@@ -0,0 +1,32 @@
class TheatreCommentsController < ApplicationController
def index
no_gt = params[:no_gt].to_i
no_gt = 0 if no_gt.negative?
comments = TheatreComment
.where(theatre_id: params[:theatre_id])
.where('no > ?', no_gt)
.order(:no)
render json: comments.as_json(include: { user: { only: [:id, :name] } })
end
def create
return head :unauthorized unless current_user
content = params[:content]
return head :unprocessable_entity if content.blank?
theatre = Theatre.find_by(id: params[:theatre_id])
return head :not_found unless theatre
comment = nil
theatre.with_lock do
no = theatre.next_comment_no
comment = TheatreComment.create!(theatre:, no:, user: current_user, content:)
theatre.update!(next_comment_no: no + 1)
end
render json: comment, status: :created
end
end
+2 -2
View File
@@ -1,8 +1,8 @@
class TheatreComment < ApplicationRecord
include MyDiscard
include Discard::Model
self.primary_key = :theatre_id, :no
belongs_to :theatre
belongs_to :user
end
+2
View File
@@ -78,5 +78,7 @@ Rails.application.routes.draw do
put :watching
patch :next_post
end
resources :comments, controller: :theatre_comments, only: [:index, :create]
end
end