Sha256: d3bd7fb972fdf15c3429c25e114129324ec9edafbf32d56d6cc39967e947ab15

Contents?: true

Size: 1.5 KB

Versions: 3

Compression:

Stored size: 1.5 KB

Contents

class Grandstand::PostsController < Grandstand::MainController
  before_filter :find_post, :except => [:create, :index, :new]

  def create
    @post = Grandstand::Post.new(params[:post].merge(:user => current_user))
    if @post.save
      flash[:success] = "#{@post.name} was successfully added"
      redirect_to grandstand_post_path(@post)
    else
      flash[:error] = 'There was a problem creating this post'
      if preview?
        render :preview, :layout => 'application'
      else
        render :new
      end
    end
  end

  def destroy
    @post.destroy
    flash[:delete] = 'Your post has been deleted'
    redirect_to grandstand_posts_path
  end

  def edit
    if preview?
      render :preview, :layout => 'application'
    end
  end

  def index
    @posts = Grandstand::Post.all
  end

  def new
    @post = Grandstand::Post.new
    if preview?
      render :preview, :layout => 'application'
    end
  end

  def update
    if @post.update_attributes(params[:post])
      flash[:success] = "#{@post.name} was successfully saved"
      request.xhr? ? render(:json => {:status => :ok}) : redirect_to(grandstand_post_path(@post))
    else
      flash[:error] = 'There was a problem saving this post'
      if preview?
        render :preview, :layout => 'application'
      else
        render :edit
      end
    end
  end

  protected
  def find_post
    return grandstand_not_found unless @post = Grandstand::Post.where(:id => params[:id]).first
  end

  def preview?
    params[:preview] == 'yup'
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
grandstand-0.3.0 app/controllers/grandstand/posts_controller.rb
grandstand-0.2.7 app/controllers/grandstand/posts_controller.rb
grandstand-0.2.6 app/controllers/grandstand/posts_controller.rb