class QuotesController < ApplicationController def index @quote = Quote.find(310) @qnumber = Quote.published.count @mnumber = Quote.pending.count end def latest @quotes = Quote.published.order(id: :desc).paginate(page: params[:page], per_page: 10) respond_to do |format| format.html { render :list } format.json { render :json => @quotes } format.xml { render :xml => @quotes } format.atom { render :atom => @quotes } end end def top @quotes = Quote.published.order(Arel.sql("(upvotes - downvotes) DESC")).paginate(page: params[:page], per_page: 10) respond_to do |format| format.html { render :list } format.json { render :json => @quotes } format.xml { render :xml => @quotes } end end def tags @tags = Quote.published.tag_counts_on(:tags) end def tag @quotes = Quote.published.tagged_with(params[:id]).order(id: :desc).paginate(page: params[:page], per_page: 10) respond_to do |format| format.html { render :list } format.json { render :json => @quotes } format.xml { render :xml => @quotes } end end def show @quote = Quote.published.find(params[:id]) respond_to do |format| format.html format.json { render :json => @quote } format.xml { render :xml => @quote } end end def new end def upvote @quote = Quote.published.find(params[:id]) respond_to do |format| if @quote.upvote! request.remote_ip format.html do flash[:notice] = "You have upvoted Quote \"#{@quote.id}\"." redirect_to @quote end format.js { render "voted" } format.xml { head :ok } else format.html do flash[:notice] = "You have already voted on Quote \"#{@quote.id}\"." redirect_to @quote end format.xml { render :xml => { :error => "Someone from your IP address has already voted on this quote."} } end end end def downvote @quote = Quote.published.find(params[:id]) respond_to do |format| if @quote.downvote! request.remote_ip format.html do flash[:notice] = "You have downvoted Quote \"#{@quote.id}\"." redirect_to @quote end format.js { render "voted" } format.xml { head :ok } else format.html do flash[:notice] = "You have already voted on Quote \"#{@quote.id}\"." redirect_to @quote end format.xml { render :xml => { :error => "Someone from your IP address has already voted on this quote."} } end end end end