"!https://secure.travis-ci.org/locomotivecms/custom_fields.png!":http://travis-ci.org/locomotivecms/custom_fields h1. CustomFields Manage custom fields to a mongoid document or a collection. This module is one of the core features we implemented in our custom cms, LocomotiveCMS. Basically, its aim is to provide to editors a way to manage extra fields to a Mongoid document through, for instance, a web UI. The main goals: * offering a very secure way to add / edit / delete extra fields to a Mongoid document * scoping the modifications added to a Mongoid document so that other documents of the same class won't be updated. h2. Requirements Ruby 2.1.x, ActiveSupport 3.2.21, MongoDB 2.0 and Mongoid 3.1.3 h2. Examples h3. On a has_many relationship bc.. class Company include CustomFields::Source has_many :employees custom_fields_for :employees end class Employee include CustomFields::Target field :name, String belongs_to :company, :inverse_of => :employees end company = Company.new company.employees_custom_fields.build :label => 'His/her position', :name => 'position', :type => 'string', :required => true company.save company.employees.build :name => 'Michael Scott', :position => 'Regional manager' another_company = Company.new employee = another_company.employees.build employee.position # returns a "not defined method" error h3. On the class itself [IN PROGRESS] bc.. class Company custom_fields_for_itself end company = Company.new company.self_metadata_custom_fields.build :label => 'Shipping Address', :name => 'address', :type => 'text' company.save company.self_metadata.address = '700 S Laflin, 60607 Chicago' another_company = Company.new other_company.self_metadata.address # returns a "not defined method" error h2. Contact Feel free to contact me at didier at nocoffee dot fr. Copyright (c) 2013 NoCoffee, released under the MIT license