Skip to content

Repository files navigation

#Primary travis-ci

primary is simple gem/plugin that will help you ensure, that you have only one primary / default record in DB. Ie. your site can have multiple languages (stored in db), but only one of them is primary / default.

Instalation

Simply add gem 'primary' to your Gemfile.

After running bundle install you can mark model as acting as primary / default.

Usage

To your model (ie. Language) add is_primary column and declare models as beeing primary by adding is_primary declaration:

classLanguage < ActiveRecord::Baseis_primaryattr_accessible:language,:is_primaryend

###Sample

Language.count# => 0lang_en=Language.create({:language=>'en'})lang_en.is_primary# => truelang_de=Language.create({:language=>'de'})lang_de.is_primary# => falselang_de.is_primary=truelang_de.savelang_de.is_primary# => truelang_en.reloadlang_en.is_primary# => false

###Possible options

is_primary:on=>'is_default',:scope=>'site_id':on=>'is_default'# use different column name:scope=>'site_id'# scope default to different column - ie. you'll# be able to define multiple languages per multiple# sites and each site will have one default lang.# Scope can be defined as array of params:scope=>['site_id','language_code']:scope=>['polymorphic_id','polymorphic_type']:auto_primary_record=>false# if you don't want primary record# to be set automatically (default: true)

##Requirements

Currently gem requires Rails 3.2, I'll have to check, if it works as desired with lower versions of Ruby.

##License

Project is distributed under general terms of MIT-LICENSE.

About

Simple gem that will help with primary/default records

Resources

Stars

12 stars

Watchers

20 watching

Forks

Releases

Packages

Used by

Contributors

Languages