class Address < ActiveRecord::Base belongs_to :addressable, :polymorphic => true end class Event < ActiveRecord::Base has_one :address, :as => :addressable, :dependent => :delete end class Contact < ActiveRecord::Base has_one :address, :as => :addressable, :dependent => :delete end # app/views/events/edit.html.haml - form_for :event do |f| %p= f.text_field :name - f.fields_for :address do |a| %p= a.text_field :street # ...