Let model Quote have attributes [price, description]
Quote
[price, description]
Let model Invoice have attributes [price, description, priority]
Invoice
[price, description, priority]
How about the slice method from ActiveSupport?
quote = Quote.new(invoice.attributes.slice(:price, :description))
or even
quote = Quote.new(invoice.attributes.slice(*Quote.accessible_attributes))