delegate
method is not limited to Active record - it comes with Active Support and may be used on any class to delegate any method to any internal objects:
require 'active_support/all'
class A
def initialize(a)
@a = a
end
delegate :+, to: :@a
end
A.new(2) + 4 #=> 6
Hence you can use it as well for your models. Just remember to add allow_nil: true
so it doesn't throw an exception if it has no feature.
class Product
embeds_one :feature
delegate :color, to: :feature, allow_nil: true
end