Tracking Views in Rails
May 22nd, 2007
ActsAsViewable is plugin that allows you to track page and asset views in your Rails application. For example, you can use it to track how many times a page is visited or how many times a particular image is viewed.
Trac: http://trac.intridea.com/trac/public/wiki/ActsAsViewable
Subversion repository: http://svn.intridea.com/svn/public/acts_as_viewable
Installation:script/plugin install http://svn.intridea.com/svn/public/acts_as_viewable
OR
cd vendor/plugins
svn co http://svn.intridea.com/svn/public/acts_as_viewable
Create the tables where views will be tracked:
class CreateViewings < ActiveRecord::Migration
def self.up
create_table :viewings do |t|
t.column :viewable_type, :string
t.column :viewable_id, :integer
t.column :views, :integer, :default => 0
t.column :created_at, :datetime, :null => false
t.column :updated_at, :datetime
end
end
def self.down
drop_table :viewings
end
end
Set the objects you want to track views for:
class SomeAsset < ActiveRecord::Base
acts_as_viewable
end
Now you can increment views for these objects wherever you need to. For example in the show action of our SomeAssetController:
class SomeAssetController < ApplicationController
def show
@some_asset = SomeAsset.find(params[:id])
@some_asset.increment_views
end
end
To get the number of views:
@some_asset.views
Automatically Expiring Sessions in Rails
May 22nd, 2007
SessionExpiration is plugin that allows you to expire sessions after X seconds of inactivity. Useful for when you want to automatically log out users if they’re idle.
Trac: http://trac.intridea.com/trac/public
Subversion repository: http://svn.intridea.com/svn/public/session_expiration/
Installation:script/plugin install http://svn.intridea.com/svn/public/session_expiration
OR
cd vendor/plugins
svn co http://svn.intridea.com/svn/public/session_expiration
Specify when to expire session in your ApplicationController to do it site wide or you can do it for specific controllers:
class ApplicationController
expire_session_in 5.minutes
end
If you want to run a method when the session expires use this:
class ApplicationController
expire_session_in 5.minutes, :after_expiration => :some_method
def some_method
flash[:notice] = "You have been logged out due to inactivity"
end
end
WhatMyFriendsLike.com
July 6th, 2006
In addition to MySpace Maps I also created WhatMyFriendsLike.com
It lets you create a ranked list of all the music, movies and books your MySpace friends like.
This one was also written entirely in Ruby on Rails sharing most of the code with MySpace Maps.
