Adds a virtual attribute to models, that plays nice with forms etc
example:
class MyModel < ActiveRecord::Base
virtual_attribute :foo, :type => :boolean, :attr_type => :attr_accessible
virtual_attribute :bar, :type => :boolean, :attr_type => :attr_accessible
virtual_attribute :dated_on, :type => :date, :attr_type => :attr_accessible
end
params = {:foo => '1', :bar => 'false'}
thing = MyModel.new(params)
thing.foo #=>true
thing. #=> false
Virtual attributes can be set to :type => :boolean
- This will parse ['yes', 'true', '1', 1] to be true
- and ['no', 'false', '0', 0] to be false
- otherwise will be nil
- this allows them to be used transparently with checkboxes etc in forms
Virtual attributes can be set to :type => :date, :type => :time, :type => :datetime
- This allows them to be used with date_select etc helpers in rails forms
If using attr_accessible in your model, the virtual attribute should be added to the list to, or you can pass:
:attr_type => :attr_accessible
as an option as shown above to have it done for you
Will document better later, until then: phil at latentflip dot com