Sha256: 427e197e07875ab0b4b9d1db793a38348ffcd0b86964f401ec3f02ec25251410
Contents?: true
Size: 1.83 KB
Versions: 1
Compression:
Stored size: 1.83 KB
Contents
# GetOrBuild This is a association builder which helps to generate or get associated object with `belongs_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 your command-line interface. ## 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 magic methods automatically ## Extension for fields_for method You are able also to use option `:build_association` for `fields_for` method to build association if it doesn't exist yet: form_for :company do |f| f.fields_for :user, :build_association => true do |fu| fu.text_field :name f.fields_for :user, :build_association => true do |fl| fl.text_field :address If you initialize associated object user for company before run `fields_for` helper then option `:build_association` won't give any effect ## Contributing You are welcome! Please, run test before pull request: `rake` and make sure if everything is working correctly. ## TODO * Support for NoSQL databases
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
get_or_build-0.0.3 | README.md |