class Session include ActiveModel::Model include ActiveModel::Attributes include ActiveModel::Validations attr_accessor :user_id attribute :email, :string attribute :password, :string validates :email, presence: true validates :password, presence: true def save user = User.authenticate_by(email: email, password: password) @user_id = user && user.id user.present? && self || nil end end