Что касается допустимых значений, вы можете создать простую константу с допустимыми значениями, например:
PERMITTED_PROPERTIES = %w(auto home boat).freeze
И затем вы можете проверить, является ли свойство одним из них:
PERMITTED_PROPERTIES.include?(property)
О проверке, чтобы видеть, является ли id цифрой c, вы можете сделать это:
id.is_a? Numeric