class TrustieHacksController < ApplicationController before_action :require_admin, :except => [:index, :entry] before_action :require_login, :except => [:index] before_action :find_hackathon before_action :find_hack, :except => [:create, :index, :edit_hackathon, :update_hackathon] def index ## 分页参数 page = params[:page] || 1 limit = params[:limit] || 16 search = params[:search] hacks = @hackathon.trustie_hacks if search hacks = hacks.where("name like ?", "%#{search}%") end @hackathon_users_count = hacks.blank? ? 0 : hacks.sum(:hack_users_count) @hacks_count = hacks.count @hacks = hacks.page(page).per(limit) end def edit;end def create @hackathon.trustie_hacks.create!(name: params[:name], description: params[:description]) render_ok end def update @hack.update_attributes(name: params[:name], description: params[:description]) render_ok end def destroy @hack.destroy render_ok end def edit_hackathon end def update_hackathon @hackathon.update_attributes(name: params[:name], description: params[:description]) render_ok end # 报名入口 def entry if @hack.hack_users.exists?(user_id: current_user.id) render_error('已经报名,请勿重复操作') else @hack.hack_users.create(user_id: current_user.id) render_ok end end private def find_hackathon @hackathon = TrustieHackathon.first || TrustieHackathon.create!(name: params[:name], description: params[:description]) end def find_hack @hack = TrustieHack.find params[:id] end end