class Identity < ApplicationRecord belongs_to :user PROVIDERS = %w[facebook google].freeze PROVIDERS.each do |provider| scope provider, -> { where(provider: provider) } end validates :uid, uniqueness: { scope: :provider }, presence: true validates :provider, inclusion: { in: PROVIDERS, message: 'this provider is not supported' }, presence: true def self.providers PROVIDERS end def self.valid_provider?(provider) providers.include?(provider.to_s) end end