class IncomingReferer < ActiveRecord::Base belongs_to :incoming_domain def self.add!(opts) domain_id = opts[:incoming_domain_id] domain_id ||= opts[:incoming_domain].id path = opts[:path] current = find_by(path: path, incoming_domain_id: domain_id) return current if current begin current = create!(path: path, incoming_domain_id: domain_id) rescue ActiveRecord::RecordNotUnique # does not matter end current || find_by(path: path, incoming_domain_id: domain_id) end end # == Schema Information # # Table name: incoming_referers # # id :integer not null, primary key # path :string(1000) not null # incoming_domain_id :integer not null # # Indexes # # index_incoming_referers_on_path_and_incoming_domain_id (path,incoming_domain_id) UNIQUE #