You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: tube_rack.rb
    path of file: ./repos/sequencescape/app/models/comments_proxy
    
    the code of the file until where you have to start completion: # frozen_string_literal: true

# When displaying tube rack comments, we also want to show any comments
# associated with the contained tubes, or their requests.
class CommentsProxy::TubeRack < CommentsProxy::Base
  def add_comment_to_tubes(comment)
    comment_records =
      @commentable.t
    
  def add_comment_to_tubes(comment)
    comment_records =
      @commentable.tubes.ids.map do |tube_id|
        {
          commentable_type: 'Labware',
          commentable_id: tube_id,
          **comment.attributes.except('id', 'commentable_type', 'commentable_id')
        }
      end

    # NOTE: We use import here to bypass the after_create
    # callbacks on Comment, as the rack has already handled that.
    # If we let the tubes handle it, we'd have lots of duplicate
    # comments.
    Comment.import(comment_records)
  end