Pass answer list method into `paginate_answers`
This commit is contained in:
parent
d77919ee01
commit
6fc4049f6c
|
@ -9,9 +9,13 @@ class AnswerController < ApplicationController
|
||||||
|
|
||||||
def show
|
def show
|
||||||
@answer = Answer.includes(comments: %i[user smiles], question: [:user], smiles: [:user]).find(params[:id])
|
@answer = Answer.includes(comments: %i[user smiles], question: [:user], smiles: [:user]).find(params[:id])
|
||||||
@subscribed = Subscription.where(user: current_user, answer: @answer).pluck(:id)
|
|
||||||
@display_all = true
|
@display_all = true
|
||||||
mark_notifications_as_read if user_signed_in?
|
@subscribed = []
|
||||||
|
|
||||||
|
return unless user_signed_in?
|
||||||
|
|
||||||
|
@subscribed = Subscription.where(user: current_user, answer: @answer).pluck(:answer_id)
|
||||||
|
mark_notifications_as_read
|
||||||
end
|
end
|
||||||
|
|
||||||
def pin
|
def pin
|
||||||
|
|
|
@ -2,10 +2,11 @@
|
||||||
|
|
||||||
module PaginatesAnswers
|
module PaginatesAnswers
|
||||||
def paginate_answers
|
def paginate_answers
|
||||||
|
@answers = yield(last_id: params[:last_id])
|
||||||
answer_ids = @answers.map(&:id)
|
answer_ids = @answers.map(&:id)
|
||||||
answer_ids += @pinned_answers.pluck(:id) if @pinned_answers.present?
|
answer_ids += @pinned_answers.pluck(:id) if @pinned_answers.present?
|
||||||
@answers_last_id = answer_ids.min
|
@answers_last_id = answer_ids.min
|
||||||
@more_data_available = !@user.cursored_answers(last_id: @answers_last_id, size: 1).count.zero?
|
@more_data_available = !yield(last_id: @answers_last_id, size: 1).count.zero?
|
||||||
Subscription.where(user: current_user, answer_id: answer_ids + @pinned_answers.pluck(:id)).pluck(:answer_id) if user_signed_in?
|
Subscription.where(user: current_user, answer_id: answer_ids).pluck(:answer_id) if user_signed_in?
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -8,9 +8,8 @@ class UserController < ApplicationController
|
||||||
after_action :mark_notification_as_read, only: %i[show]
|
after_action :mark_notification_as_read, only: %i[show]
|
||||||
|
|
||||||
def show
|
def show
|
||||||
@answers = @user.cursored_answers(last_id: params[:last_id])
|
|
||||||
@pinned_answers = @user.answers.pinned.order(pinned_at: :desc).limit(10)
|
@pinned_answers = @user.answers.pinned.order(pinned_at: :desc).limit(10)
|
||||||
subscribed_answer_ids = paginate_answers
|
subscribed_answer_ids = paginate_answers { |args| @user.cursored_answers(**args) }
|
||||||
|
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.html { render locals: { subscribed_answer_ids: } }
|
format.html { render locals: { subscribed_answer_ids: } }
|
||||||
|
|
Loading…
Reference in New Issue