This allows you do something like:
User = Struct.new(:address)
Address = Struct.new(:street, :suburb)
class UserForm < Reform::Form
property :address do
property :street
property :suburb
end
delegated_property :street, to: :address, validates: {presence: true}
delegated_property :suburb, to: :address, validates: {presence: true}
end
user = User.new(Address.new)
form = UserForm.new(user)
form.street = '13 Smith St'
form.suburb = 'Melbourne'