Attribute Getter without the Recursion
You may find yourself adding a custom getter method for one of the attributes in a Rails model. It might look something like this:
def name
name || account.name
end
This method will fall on its face as it quickly expands the stack recursively calling itself. Instead, you can tell ActiveRecord
that you want the value of that attribute without invoking the getter Instead, we want to get the value of the attribute without invoking the model's getter. ActiveRecord
allows us to do this with the read_attribute
method. Check it out:
def name
read_attribute(:name) || account.name
end
Last updated
Was this helpful?