I am using Paperclip to defined an attachment called badge, both on a child model and the parent model defined through a belongs_to. I want to override @instance.badge such that it returns the model’s badge if it is available, otherwise it returns the parent’s badge.
I started by doing the following until I realized that the read_attribute was always returning nil and using the parent badge. Is there a way to read the result of the badge method and if that returns nil, use the parent’s badge method instead?
I’d prefer to keep the method named badge too, instead of having a separate child_or_parent_badge method.
def badge
read_attribute(:badge) || parent.badge
end
Naming the method badge will make your life much more complicated, it makes more sense to name the helper for what it does and leave the attachment name the same so you can access it directly.