A Rails key value store for models
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


The Nifty Key Value Store

If you want to create a quick key/value store in your application where the values relate to an existing model, this is very helpful.

Add the gem to the Gemfile

gem "nifty-key-value-store", require: "nifty/key_value_store"

You'll need to create the database table and then, once added, you can specify what objects you want to store.

$ rails generate nifty:key_value_store:migration
$ rake db:migrate
class Person < ActiveRecord::Base
  key_value_store :settings
  key_value_store :other_settings

person = Person.new
person.settings             = {:colour => 'red', :fruit => 'apple'}
person.other_settings_json  = "{"hello":"world"}"

person = Person.find(person.id)
person.settings         #=> {'colour' => 'red', 'fruit' => 'apple'}
person.settings_json    #=> "{'color':'red', 'fruit':'apple'}"

A few points to note about this:

  • All values are stored as strings in the database
  • All keys are stored as strings and returned as strings in their hash