diff --git a/app/controllers/weapps/subjects_controller.rb b/app/controllers/weapps/subjects_controller.rb index cabeb729c..a760632ae 100644 --- a/app/controllers/weapps/subjects_controller.rb +++ b/app/controllers/weapps/subjects_controller.rb @@ -1,5 +1,6 @@ class Weapps::SubjectsController < Weapps::BaseController before_action :require_login + before_action :find_subject, except: [:index] # 首页 def index @@ -8,7 +9,18 @@ class Weapps::SubjectsController < Weapps::BaseController # 详情 def show + # 合作团队 + Rails.logger.info("##########subject: #{@subject.id}") + @members = @subject.subject_members.includes(:user) + shixuns = @subject.shixuns.published.pluck(:id) + challenge_ids = Challenge.where(shixun_id: shixuns).pluck(:id) + # 实训路径中的所有实训标签 + @tags = ChallengeTag.where(challenge_id: challenge_ids).pluck(:name).uniq + end + private + def find_subject + @subject = Subject.find(params[:id]) end end diff --git a/app/views/weapps/subjects/show.json.jbuilder b/app/views/weapps/subjects/show.json.jbuilder new file mode 100644 index 000000000..757257e82 --- /dev/null +++ b/app/views/weapps/subjects/show.json.jbuilder @@ -0,0 +1,17 @@ +json.subject do + json.name @subject.name + json.description @subject.description + json.shixuns_count @subject.shixuns_count + json.member_count @subject.member_count + json.subject_score @subject.all_score + json.learning_notes @subject.learning_notes +end + +json.team_title @subject.team_title +json.members @members do |member| + json.partial! 'subjects/subject_member', locals: { user: member.user } + json.role member.role +end + +# 技能标签 +json.tags_name @tags \ No newline at end of file