mirror of
https://github.com/Growstuff/growstuff.git
synced 2026-05-24 16:58:35 -04:00
cache stats and member thumbnails on homepage
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
class CropsController < ApplicationController
|
||||
load_and_authorize_resource
|
||||
|
||||
cache_sweeper :crop_sweeper
|
||||
|
||||
# GET /crops
|
||||
# GET /crops.json
|
||||
def index
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
class GardensController < ApplicationController
|
||||
load_and_authorize_resource
|
||||
|
||||
cache_sweeper :garden_sweeper
|
||||
|
||||
# GET /gardens
|
||||
# GET /gardens.json
|
||||
def index
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
class MembersController < ApplicationController
|
||||
load_and_authorize_resource
|
||||
|
||||
cache_sweeper :member_sweeper
|
||||
|
||||
skip_authorize_resource :only => :nearby
|
||||
|
||||
def index
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
|
||||
class RegistrationsController < Devise::RegistrationsController
|
||||
|
||||
cache_sweeper :member_sweeper
|
||||
|
||||
def edit
|
||||
@twitter_auth = current_member.auth('twitter')
|
||||
@flickr_auth = current_member.auth('flickr')
|
||||
|
||||
13
app/models/crop_sweeper.rb
Normal file
13
app/models/crop_sweeper.rb
Normal file
@@ -0,0 +1,13 @@
|
||||
class CropSweeper < ActionController::Caching::Sweeper
|
||||
observe Crop
|
||||
|
||||
def after_create(crop)
|
||||
expire_fragment('homepage_stats')
|
||||
end
|
||||
|
||||
def after_destroy(crop)
|
||||
expire_fragment('homepage_stats')
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
12
app/models/garden_sweeper.rb
Normal file
12
app/models/garden_sweeper.rb
Normal file
@@ -0,0 +1,12 @@
|
||||
class GardenSweeper < ActionController::Caching::Sweeper
|
||||
observe Garden
|
||||
|
||||
def after_create(garden)
|
||||
expire_fragment('homepage_stats')
|
||||
end
|
||||
|
||||
def after_destroy(garden)
|
||||
expire_fragment('homepage_stats')
|
||||
end
|
||||
end
|
||||
|
||||
13
app/models/member_sweeper.rb
Normal file
13
app/models/member_sweeper.rb
Normal file
@@ -0,0 +1,13 @@
|
||||
class MemberSweeper < ActionController::Caching::Sweeper
|
||||
observe Member
|
||||
|
||||
def after_create(member)
|
||||
expire_fragment('homepage_stats')
|
||||
end
|
||||
|
||||
def after_update(member)
|
||||
expire_fragment("member_thumbnail_#{member.slug}")
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -2,20 +2,13 @@ class PlantingSweeper < ActionController::Caching::Sweeper
|
||||
observe Planting
|
||||
|
||||
def after_create(planting)
|
||||
expire_cache_for(planting)
|
||||
end
|
||||
|
||||
def after_update(planting)
|
||||
expire_cache_for(planting)
|
||||
expire_fragment('homepage_stats')
|
||||
expire_fragment("member_thumbnail_#{planting.owner.slug}")
|
||||
end
|
||||
|
||||
def after_destroy(planting)
|
||||
expire_cache_for(planting)
|
||||
expire_fragment('homepage_stats')
|
||||
end
|
||||
|
||||
private
|
||||
def expire_cache_for(planting)
|
||||
expire_fragment('recent_plantings')
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
%p.stats
|
||||
So far,
|
||||
= link_to "#{@member_count.to_i} members", members_path
|
||||
have planted
|
||||
= link_to "#{@crop_count.to_i} crops", crops_path
|
||||
= link_to "#{@planting_count.to_i} times", plantings_path
|
||||
in
|
||||
= succeed "." do
|
||||
= link_to "#{@garden_count.to_i} gardens", gardens_path
|
||||
- cache("homepage_stats") do
|
||||
%p.stats
|
||||
So far,
|
||||
= link_to "#{@member_count.to_i} members", members_path
|
||||
have planted
|
||||
= link_to "#{@crop_count.to_i} crops", crops_path
|
||||
= link_to "#{@planting_count.to_i} times", plantings_path
|
||||
in
|
||||
= succeed "." do
|
||||
= link_to "#{@garden_count.to_i} gardens", gardens_path
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
.row-fluid
|
||||
.span3
|
||||
= render :partial => "members/image_with_popover", :locals => { :member => member }
|
||||
.span9
|
||||
%p
|
||||
= link_to member.login_name, member
|
||||
- if ! member.location.blank?
|
||||
%br/
|
||||
%i= member.location
|
||||
- if ! member.plantings.empty?
|
||||
%br/
|
||||
Recently planted:
|
||||
!= member.plantings.first(3).map{|p| link_to p.crop_system_name, p }.join(", ")
|
||||
- cache "member_thumbnail_#{member.slug}" do
|
||||
.row-fluid
|
||||
.span3
|
||||
= render :partial => "members/image_with_popover", :locals => { :member => member }
|
||||
.span9
|
||||
%p
|
||||
= link_to member.login_name, member
|
||||
- if ! member.location.blank?
|
||||
%br/
|
||||
%i= member.location
|
||||
- if ! member.plantings.empty?
|
||||
%br/
|
||||
Recently planted:
|
||||
!= member.plantings.first(3).map{|p| link_to p.crop_system_name, p }.join(", ")
|
||||
|
||||
@@ -13,7 +13,7 @@ Growstuff::Application.configure do
|
||||
config.consider_all_requests_local = true
|
||||
|
||||
# cache for testing/experimentation - turn off for normal dev use
|
||||
config.action_controller.perform_caching = false
|
||||
config.action_controller.perform_caching = true
|
||||
config.cache_store = :memory_store
|
||||
|
||||
# Don't care if the mailer can't send
|
||||
|
||||
Reference in New Issue
Block a user