GetOrBuild
This is a association builder which helps to generate or get associated object with belogs_to or has_one association.
Installation
Add this line to your Gemfile
gem 'get_or_build'
then as usually update installed gem by typing bundle in terminal.
Using with ActiveRecord
Assume you have model Company which has one User and belongs to Location:
class Company < ActiveRecord::Base
belongs_to :location
has_one :user
accepts_nested_attributes_for :user
accepts_nested_attrbiutes_for :location
end
class User < ActiveRecord::Base; end
class Location < ActiveRecord::Base; end
When you are building form for company with nested attributes for location or user you are able now use new methods like user_or_build or location_or_build:
form_for :company do |f|
f.fields_for :user, f.object.user_or_build do |fu|
fu.text_field :name
f.fields_for :location, f.object.location_or_build do |fl|
fl.text_field :address
No longer need to call f.object.user || f.object.build_user
Using with NoSQL databases
Just include in your document module GetOrBuild::AssociationBuilder and it will attach magick methods automatically
Contributing
You are welcome! Please, run test before pull request: ruby test/*.rb and make sure if everything is workig correctly.
TODO
- tests for
MongoMapper