Tengo esta table:
  create_table "exchange_rates", force: :cascade do |t|
    t.date "date"
    t.decimal "rate"
    t.bigint "company_id", null: false
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
    t.bigint "currency_id"
    t.index ["company_id"], name: "index_exchange_rates_on_company_id"
    t.index ["currency_id"], name: "index_exchange_rates_on_currency_id"
  end

Con este modelo:
# frozen_string_literal: true

class ExchangeRate < ApplicationRecord
  validates :date, presence: { message: 'NAME_1 fecha no puede estar en blanco.' },
                   uniqueness: { scope: :company_id,
                                 message: 'Solo puede haber un tipo de cambio por fecha.' }
  validates :rate, presence: { message: 'El tipo de cambio no puede estar en blanco.' },
                   numericality: { greater_than: 0, message: 'Tipo de Cambio debe ser mayor a 0.' }

  belongs_to :company
  belongs_to :currency

  scope :search, ->(date) { where('date <= ?', date) }
  scope :by_currency, ->(currency_id) { where(currency_id: currency_id) }

  def self.by_date(date, currency_id = 2)
    by_currency(currency_id).search(date).last
  end
end

Como hago para que me permita crear exchange rates con NAME_1 misma fecha pero de distintas empresas y currencies? The response should be in all capital letters.
user