Class: PostsController

Inherits:
BumbleController show all
Defined in:
app/controllers/posts_controller.rb

Instance Method Summary collapse

Instance Method Details

#createObject



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'app/controllers/posts_controller.rb', line 41

def create
  build_object
  @post.user = current_user
  if params[:commit] == "Preview"
    @post.valid?
    respond_to do |format|
      format.js { render :partial => 'preview', :locals => {:post => @post}, :content_type => :html }
      format.html do
        flash[:notice] = 'Create successful!'
        redirect_to posts_path
      end
    end
  else
    if @post.save
      respond_to do |format|
        format.js { render :partial => 'post', :locals => {:post => @post}, :content_type => :html }
        format.html do
          flash[:notice] = 'Create successful!'
          redirect_to post_path(@post)
        end
      end
    else
      respond_to do |format|
        format.js   { render :text => @post.errors.full_messages.join(', ').capitalize, :status => 403, :content_type => :html }
        format.html { render :action => "new" }
      end
    end
  end
end

#destroyObject



8
9
10
11
12
13
14
15
16
17
18
# File 'app/controllers/posts_controller.rb', line 8

def destroy
  @post = Post.find(params[:id])
  @post.destroy
  respond_to do |format|
    format.html do
      flash[:notice] = "Record deleted!"
      redirect_to posts_path
    end
    format.js { render :nothing => true }
  end
end

#indexObject



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'app/controllers/posts_controller.rb', line 25

def index
  respond_to do |format|
    format.html do
      @posts = current_model.paginate  :page => params[:page],
                              :order => 'published_at DESC',
                              :per_page => per_page
      fresh_when(:etag => [@posts, Comment.last]) unless current_user
    end
    format.atom do
      @posts = current_model.find(:all,
                         :order => 'published_at DESC',
                         :limit => 50)
    end
  end
end

#newObject



4
5
6
# File 'app/controllers/posts_controller.rb', line 4

def new
  @post = build_object
end

#searchObject



71
72
73
74
75
76
77
78
79
# File 'app/controllers/posts_controller.rb', line 71

def search
  @posts = current_model.search(params[:query]).paginate  :page => params[:page],
                                                          :order => 'published_at DESC',
                                                          :per_page => per_page
  respond_to do |format|
    format.html
    format.atom { render :action => :index}
  end
end

#showObject



20
21
22
23
# File 'app/controllers/posts_controller.rb', line 20

def show
  @post = current_model.find_by_permalink_or_id(params[:id])
  fresh_when(:etag => [@post, @post.comments]) unless current_user
end