Problem
When using composed_of with Money you get this nice error when trying to get the money object while the cents column is nil.
Additionally Money.new(nil) does not work, neither do strings like Money.new(params[:cents]).
Solution
Overwrite the initializer to also accept nil and strings
# config/initializers/money.rb require 'money' class Money def initialize_with_default_currency(*args) args[0] = args[0].to_i if args[0].is_a?(String) or args[0].blank? args[1] ||= Money.default_currency initialize_without_default_currency(*args) end alias_method_chain :initialize, :default_currency end