You could have accessed the link directly and done away witht the else statement with the following:

protected
 def update_link_score
    if self.link.present?
      self.link.update_score
    end
 end