Ich habe gelernt, wie man die Sendemethode verwendet. Machen Sie sich also eine Notiz.
Ich hatte ein Formular, in dem ich bis zu zwei Bilder anhängen konnte, und ich wollte herausfinden, wie groß der Beitrag war, also habe ich versucht, ein Protokoll zu erstellen.
Also habe ich ursprünglich den folgenden Code geschrieben.
validate :checking_image_size_over_limit
def checking_image_size_over_limit
logging_image_size(image_first, 'first') if image_first.present?
logging_image_size(image_second, 'second') if image_second.present?
end
def logging_image_size(image, number)
if image&.size >= 5 * 1024 * 1024
Rails.logger.info "[#{self.class.name}] Over 5MB of images (image_#{number})"
end
end
Ich wollte feststellen, ob es sich um das erste oder das zweite Blatt handelt, also habe ich eine Zeichenfolge als zweites Argument übergeben und sie in der Protokollnachricht erweitert. Ich erhielt jedoch eine Bewertung von meinem Senior und schrieb sie neu und sagte: "Wenn ja, können Sie send mit nur einem Argument verwenden."
validate :checking_image_size_over_limit
def checking_image_size_over_limit
logging_image_size('image_first') if image_first.present?
logging_image_size('image_second') if image_second.present?
end
def logging_image_size(image)
if send(image)&.size >= 5 * 1024 * 1024
Rails.logger.info "[#{self.class.name}] Over 5MB of images (#{image})"
end
end
Apropos Senden, ich hatte nur das Bild, es zum dynamischen Wechseln von Methoden zu verwenden, aber ich habe gelernt, dass es auch verwendet werden kann, indem die als Argument übergebene Zeichenfolge erneut als Methode aufgerufen wird.