From acbfea103234c53f421026f1983f0cf62c47d9b6 Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Wed, 31 Jul 2019 16:49:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=A4=E6=B5=81=E9=97=AE=E7=AD=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/memos_controller.rb | 11 +++++++++-- app/views/memos/_replies_list.json.jbuilder | 2 +- app/views/memos/more_reply.json.jbuilder | 7 +++++++ config/routes.rb | 1 + 4 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 app/views/memos/more_reply.json.jbuilder diff --git a/app/controllers/memos_controller.rb b/app/controllers/memos_controller.rb index d9149378b..66adcc46b 100644 --- a/app/controllers/memos_controller.rb +++ b/app/controllers/memos_controller.rb @@ -1,6 +1,6 @@ class MemosController < ApplicationController before_action :require_login, except: [:show, :index] - before_action :set_memo, only: [:show, :edit, :update, :destroy, :sticky_or_cancel, :hidden] + before_action :set_memo, only: [:show, :edit, :update, :destroy, :sticky_or_cancel, :hidden, :more_reply] before_action :validate_memo_params, only: [:create, :update] before_action :owner_or_admin, only: [:edit, :update, :destroy] before_action :is_admin, only: [:sticky_or_cancel, :hidden] @@ -164,7 +164,14 @@ class MemosController < ApplicationController end end - + def more_reply + @user = current_user + page = params[:page] || 2 + limit = params[:limit] || 10 + offset = (page.to_i - 1) * limit + @memos_count = Memo.where(parent_id: @memo.id).count + @memos = Memo.limit(limit).where(parent_id: @memo.id).includes(:author, :praise_treads).order("created_at desc").offset(offset) + end private # Use callbacks to share common setup or constraints between actions. diff --git a/app/views/memos/_replies_list.json.jbuilder b/app/views/memos/_replies_list.json.jbuilder index 9122d3420..9ec6976c2 100644 --- a/app/views/memos/_replies_list.json.jbuilder +++ b/app/views/memos/_replies_list.json.jbuilder @@ -10,7 +10,7 @@ json.permission @user.manager_of_memo?(memo) json.praise_count memo.praise_treads.select{|pt| pt.praise_or_tread == 1}.count json.user_praise memo.praise_treads.select{|pt| pt.praise_or_tread == 1 && pt.user_id == @user.id}.length > 0 json.user_login memo.author.login -json.admin @user.admin +json.admin @user.admin? || @user.business? json.children do json.array! memo.children_of_reply do |child| diff --git a/app/views/memos/more_reply.json.jbuilder b/app/views/memos/more_reply.json.jbuilder new file mode 100644 index 000000000..af1a9f1ac --- /dev/null +++ b/app/views/memos/more_reply.json.jbuilder @@ -0,0 +1,7 @@ +json.memo_replies do + json.array! @memos do |memo| + json.partial! "memos/replies_list", memo: memo + end +end + +json.memos_count @memos_count \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index 0465edc36..10a6160ab 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -24,6 +24,7 @@ Rails.application.routes.draw do member do post :sticky_or_cancel post :hidden + get :more_reply end collection do