Skip to content
CachedModels provides to your ActiveRecord objects a transparent approach to use ActiveSupport caching mechanism.
Ruby
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
lib
tasks
test
.gitignore
CHANGELOG
MIT-LICENSE
README
Rakefile
about.yml
cached-models.gemspec
init.rb
install.rb
setup.rb
uninstall.rb

README

= CachedModels

CachedModels provides to your models a transparent approach to use Rails internal caching mechanism.

Check for news and tutorials at the {project home page}[http://www.lucaguidi.com/pages/cached_models].



= Usage

Using Memcached and Rails 2.2.0

Make sure to configure your current environment with:

config.cache_classes = true
config.action_controller.perform_caching = true
config.cache_store = :mem_cache_store



class Project < ActiveRecord::Base
  has_many :developers, :cached => true
  has_many :tickets, :cached => true
  has_many :recent_tickets, :limit => 5,
    :order => 'id DESC', :cached => true
    
end

class Developer < ActiveRecord::Base
  belongs_to :project, :cached => true
end


Example 1
  project.developers # Database fetch and automatic cache storing

  developer = project.developers.last
  developer.update_attributes :first_name => 'Luca' # Database update and cache expiration for project cache

Example 2
  project2.developers # Database fetch and automatic cache storing
  project2.developers << developer # Database update and cache renewal for both project and project2 caches

Example 3
  project.tickets # Database fetch and automatic cache storing
  ticket = project.recent_tickets.first
  ticket.update_attributes :state => 'solved' # Database update and cache expiration for both tickets and recent_tickets entries


= Install

There are three ways to install CachedModels

Gemified plugin:

  environment.rb

    Rails::Initializer.run do |config|
      config.gem 'cached-models'
    end

  $ (sudo) rake gems:install
  $ rake gems:unpack

Rails plugin:

  $ ./script/plugin install git://github.com/jodosha/cached-models.git

Standalone:

  $ (sudo) gem install cached-models
  
  in your project:
  
    require 'rubygems'
    require 'activerecord'
    require 'cached-models'

    ActiveRecord::Base.rails_cache = ActiveSupport::Cache.lookup_store(:mem_cache_store, 'localhost')



= Test
  Make sure your current store is Memcached



= Contribute

* Check out the code and test it:
  $ git clone git://github.com/jodosha/cached-models.git
  $ rake cached_models

* Create a ticket to the {Sushistar Lighthouse page}[http://sushistar.lighthouseapp.com]

* Create a patch and add as attachment to the ticket.



Copyright (c) 2008 Luca Guidi, released under the MIT license
Something went wrong with that request. Please try again.