Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Full metal Jacket for safe association attributes
- def method_missing(method_id, *args, &block)
- method_name = method_id.to_s
- association_names = self.class.reflect_on_all_associations(:belongs_to).map { |a| a.name.to_s }
- association_names.concat self.class.reflect_on_all_associations(:has_one).map { |a| a.name.to_s }
- association_names.each do |association_name|
- if method_name.include?(association_name)
- possible_attribute_name = method_name.gsub(association_name + "_","")
- associated_object = self.send(association_name)
- unless associated_object.nil?
- if associated_object.attributes.include?(possible_attribute_name)
- return associated_object.send(possible_attribute_name)
- end
- else
- return ""
- end
- end
- end
- super
- end
Add Comment
Please, Sign In to add comment