I just released a prefixed_attributes plugin for Rails.
Rails has a handy number_to_human_size method, but in order to use it, all
your quantities need to be in non-scaled units, and it‘s cumbersome
to have your users typing 100 gigabyte amounts by hand. You‘d
normally have a “bytes” column in your records and add virtual
attributes to your models. This plugin adds those attributes for you.
Additionally, since we also add a setter method, you can, for instance,
assign directly to the “gibibytes” attribute and mapping to the
actual underlying “bytes” attribute is handled automatically.
Thus, you can change references to the “bytes” field in your
forms to “gibibytes” or whatever you want your users to actually
The plugin adds a prefixed_attribute method to all your classes. Use it to
mark an existing attribute on your class (even a non-AR one) like this:
prefixed_attribute :bytes, :type => :binary
prefixed_attribute :hertz, :type => :si
To install it, switch to your project’s plugin directory and do:
git clone git://github.com/roadmr/prefixed_attributes.git
then follow the instructions in prefixed_attributes/README.