This repository has been archived on 2020-05-27. You can view files and clone it, but cannot push or open issues/pull-requests.
barleysodas/app/controllers/experiences_controller.rb

72 lines
2.1 KiB
Ruby

class ExperiencesController < ApplicationController
append_before_filter :fetch_experience, :only => [ :edit, :update, :destroy ]
# GET /experiences
def index
redirect_to experience_url(:id => session[:people_title_for_url])
end
# GET /experiences/1
# GET /experiences/1.xml
def show
@people = People.find_by_title(Page.title_from_url(params[:id]))
cond_ary = [ 'experiences.people_id = :people_id' ]
cond_var = { :people_id => @people.id }
conditions = [ cond_ary.join(' AND '), cond_var ]
@total_count = Experience.count(conditions)
@pages, @experiences = paginate :experiences,
:include => [ 'beer' ], :order => [ 'beers.title ASC' ],
:per_page => per_page, :conditions => conditions
brewery_ids = @experiences.collect { |e| e.beer.brewery_id }
@breweries = Brewery.find(brewery_ids, :order => 'title ASC')
flash.now[:notice] = 'No experience yet.' if @experiences.empty?
respond_to do |format|
format.html # index.rhtml
format.xml { render :xml => @experiences.to_xml }
end
end
# GET /experiences/1;edit
def edit
end
# POST /experiences
def create
@experience = Experience.new(params[:experience])
@experience.people_id = session[:people_id]
if @experience.save
render :inline => "<%= remove_experience_link(@experience) -%>"
else
render :inline => "<%= error_messages_for(@experience) -%>",
:status => 500
end
end
# PUT /experiences/1
def update
if @experience.update_attributes(params[:experience])
render :inline => "<%= add_experience_link -%>"
else
render :inline => "<%= error_messages_for(@experience) -%>",
:status => 500
end
end
# DELETE /experiences/1
def destroy
# not sure if this is necessary, but i'll include it for completeness.
if @experience.destroy
render :inline => "<%= add_experience_link -%>"
else
render :nothing => true, :status => 500
end
end
protected
def fetch_experience
@experience = Experience.find(params[:id])
raise ActiveRecord::RecordNotFound.new unless @experience
end
end