pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Как проверить совпадение дат в определенном периоде?

Лучший ответ: переводите даты в unixtime его лечге сравнивать)
функция для перевода в unixtime - strtotime()
дальше думаю все просто и не требует объяснений

Худший ответ: диапазон дат дат хранится прям одной строкой или 2 столбца date?
если да - сначалаlist($from, $to) = explode(' - ', $range);
а потом как выше написали через функциюstrtotime
Вопрос: Якорь через href=".example" + class="example" это модное веяние или ошибка природы?

Лучший ответ: Эта фигня не будет работать.
# - это служебный символ URL, указывающий на фрагмент страницы.
любые другие символы будут интерпретироваться как адрес ресурса. Ваш пример должен инициировать простой переход по ссылке.
Можно перехватывать нажатия джаваскриптом, смотреть что там в href и крутить страницу к нужному элементу. Вероятно в вашей находке так и сделано.
Но это опять же не по феншую. Лучше используйте data-атрибут для ссылки на элемент.

Худший ответ: если ругается Валидатор то Ошибка верстальщика
Вопрос: SASS/SCSS или Compass для сборки?

Лучший ответ: Compass существенно замедляет процесс сборки, а используются оттуда обычно только спрайты, да пара функций, которые пишутся за минуту. Мы от него у себя отказались. Я вообще удивлён, что compass-style.org заработал - последние полгода туда невозможно было зайти и я решил, что даже создатели похоронили проект.

Худший ответ: gulp-sass
компас, набор миксинов, не все оно тебе нужно и его можно подключить как сасс библиотеку https://github.com/Igosuki/compass-mixins
Вопрос: Как очистить и затем восстановить таблицу в базе данных mysql?

Лучший ответ: Ошибка появляется потому, что вы не удалили данные из бызы.
1) Экспорт
2) Обязательно убедиться, что в sql файле есть пункт на создание таблиц.
3) Удалить таблицы с данными
4) Импорт
В mysqldump есть ключ --add-drop-table, который добавит пункты по дропу таблиц, перед их созданием. Таким образом импорт гарантированно пройдет без ошибок. С phpmyadmin не работал, наверняка там есть что-то подобное

Худший ответ: хм, может другой алгоритм подойдет?
1. скопировать таблицу1 в таблицу2
2. очистить таблицу1
3. скопировать дату из таблицы2 в таблицу1
а для бекапов ПМА не самый лучший вариант
Вопрос: Что это за приглашение?

Лучший ответ: Работал с ними немножко, идея такая - набирают много людей, люди учатся, сдают тесты, за каждый сданный тест тебе платят (от 5 до 50 долларов), потом если все тесты хорошо сдал, они приглашают тебя на них работать, за 15 долларов в час. Я сдал пару тестов по английскому, потом забил, времени не было, они закрыли контракт, поставили хороший отзыв. Заправляет всем этим индус из Стенфорда, по-моему, мне кажется это какой-то психологический эксперимент, типа хотят выяснить как людей мотивируют деньги)
Еще там перед началом работы надо заполнить нефиговую такую анкету, кучу времени занимает. По крайней мере, так было раньше.

Худший ответ: компания массово набирает сотрудников.
Вопрос: Лучше разобраться с cron или силами одного PHP?

Лучший ответ: Ваш план, простите, говно. Либо крон, либо храните в базе дату и время действия скидки и проверяйте ее оттуда

Худший ответ: А что если у вас товар "А", есть в категории для скидок и в обычной категории, а вы цену обновили в БД?
Оба варианта мне не нравятся. Но из двух предложенных вариантов, менее плохой с кроном. Разобраться с кроном и настроить его займет часа пол.
Вопрос: У оператовов мобильной связи при LTE подключении и 3g подключении одни и те же диапазоны IP выдаются?

Лучший ответ: Как правило, да.
Как правило, GGSN (в 3g) и PGW (в LTE) (для справки - это некий аналог BRAS) - это один и тот же узел.
Сделано так для того, чтобы при бесшовном переключении между LTE и 3g не рвалась пакетная сессия и, соответственно, ip-соединения.
В общем, если кратко:
 - сидишь ты в LTE или 3g, всё равно твой трафик, _как правило_, приземлится на одном и том же узле
 - абоненты LTE и 3g, _как правило_, сидят на одном и том же узле вперемешку
 - абоненты LTE и 3g, сидящие на одном и том же узле, _как правило_, используют одни и те же ip-пулы

Худший ответ: Одни и те же IP-адреса.
Вопрос: Как удалить сладкий чай с клавиватуры?

Лучший ответ: Клавиатура ноутбучная - поменять
Клавиатура стационарная - разобрать, промыть фейри, просушить феном, собрать (работы часа на 3)

Худший ответ: Попробовать залить туда пену которой автосалоны чистят, в баллнчиках такая. Если есть знакомые автолюбители - спросить у них погонять.
Вопрос: Самый эффективный способ освоить React Native?

Лучший ответ: Самый эффективный - это написать в консоле create-react-native-app и читать вот это.

Худший ответ: Самый эффективный способ освоить React Native
Самый эффективный способ научиться подтягиваться - это, как ни странно, подтягиваться. И от React Native'а ничем не отличается. Чтобы его освоить, нужно писать на нем. Прочитали что-то, тут же закрепили на практике и т.д.
Вопрос: C# — Как задать несколько значений одному «if»?

Лучший ответ: Почитайте про логические операции
Здесь вам нужно использовать "ИЛИ" - ||
if a == "ага" || a == "угу" {}

Худший ответ: Если Ага угу и тд не меняюся то можно сделать такswitch(A)
{
     case "Ага":
         //Действие при условии что A равно Ага
         break;
     case "Угу":
         //Действие при условии что A равно Угу
         break;
     //Таких конструкций может быть очень много но нельзя чтобы слова повторялись.
     default:
         //Ни один case не совпадает с значением A
         break;
}
Вопрос: Почему PHP скрипт занял всё место на диске?

Лучший ответ: Классический stackoverflow.
Сдаётся мне, что "раздуло" своп из-за использования стандартных PHP-функций на нестандартных объёмах данных. Т.е. алгоритм не рассчитан на работу с входными данными такого объёма.
Ищите: где у Вас bottleneck-функция в коде алгоритма.

Худший ответ: Своп на диске?
Напарсил в память/своп/временные файлы?
Вопрос: Как в свой php проект добавить лицензию против слива?

Лучший ответ: ыыы, во молодцы, вариантов у них нет
Вот вам грамотный вариант
Размещаете проект у себя на серваке весь, а у заказчика просто тупо проксируете
Вот и все
Он щелкает, думает что все у него залито, домен его, на самом деле, все у вас и исходников нет
Только так
И этот вопрос уже тут был и вариантов куда как больше было

Худший ответ: Вариантов почти нет. Разве что делать енкодинг кода каким-то Zend Encoder, но на рынке есть декодеры.
Вопрос: Как назначить обработчик событий на множество элементов на странице?

Лучший ответ: один обработчик на весь документ, слушает все клики и проверяет не попали ли они по кнопке.document.addEventListener('click', evt => {
  if (evt.target.matches('button.action, button.action *')) {
     console.log('target', evt.target)
     let button = evt.target.closest('button')
     console.log('button', button)
  }
})snippetsnippet

Худший ответ: Немного доработанный ответ Stalker_RED (Обработчик срабатывает при клике по целевому элементу и по любому вложенномуdocument.addEventListener('click', async function (event) {
	if (!event.target.matches('button.action, button.action *')) {
		return;
	}
})
Вопрос: Как добавить анимацию?

Лучший ответ: проще добавлять класс, на пример active и в стилях добавить анимацию к .gameend,active

Худший ответ: Если с классом .flipInX то пример.game-info {
  transition: all .52s ease-in-out;
  opacity: 0;
  transform: translateX(1000%);
}

.game-info.hidden {
  opacity: 1;
  transform: translateX(0%);  
}
Вопрос: В чем в MySQL лучше хранить день рождения?

Лучший ответ: День рождения (год, месяц, день) лучше хранить в DATE, очевидно. Не разбивать их по столбцам, а оперировать с данными внутри базы.

Худший ответ: UNIX TIMESTAMP как вариант.
Вопрос: Как поступить в сложившейся ситуации?

Лучший ответ: отказаться от реализации совсем.
Проект, в котором сервис должен быть гарантом сделок одиночка фрилансер писать не должен.
Заказчик такого дела должен быть юрлицом и работать со студией. 
Иначе в результате получится очередной сайт для обмана.

Худший ответ: laravel - идеальный вариант, имхо. Плюс знание оного будет весьма полезно, даже если с ним работать не планируете, хотя, это, наверно, пока не начнете на нем что-то делать
Вопрос: Ноутбук не видит второй жесткий HDD. Что делать?

Лучший ответ: BIOS должен видеть диски независимо от того, стоит система или нет. Я тоже так сделал, но у меня как-то все нормально было изначально. Попробуйте в BIOS отключить все диски, потом снова включить. Может быть, стоит обновить прошивку?

Худший ответ: Как уже сказали, в БИОСе диск должен быть видим в любом случае. Либо он не вставлен нормально в Optibay, либо Optibay не вставлен в разьем SATA, либо в БИОСе как-то зашито, что в том слоте должен быть именно привод, а диск он не подключает.
В первых двух случаях поможет внимательно разобрать и собрать заново всю конструкцию, в третьем - custom bios.
Либо что-то сломано: разъём sata в ноутбуке (поверьте, вставив обратно привод), разьем sata в optibay (проверьте с другим диском), разьем sata диска (проверьте, вставив его обратно вместо SSD).
Вопрос: Может ли desktop приложение быть клиент-серверным? В чём отличие консольного от desktop приложения?

Лучший ответ: Может ли desktop приложение быть клиент-серверным?
Может. Пример - браузер.В чём отличие консольного от desktop приложения?
У консольного интерфейс - командная строка, у десктопного GUI (графический интерфейс).

Худший ответ: 1. Да, конечно, может, еще это называется "толстый" клиент
2. Консоль предполагает текстовый ввод/вывод, а Desktop-приложение предоставляет пользователю ГИП (графический интерфейс пользователя)
В целом эта классификация достаточно условная.
Вопрос: Как организовать доступ к ресурсам в REST API?

Лучший ответ: Перемудрили. Всё должно быть очень просто. Что такое тип медиа? Музыка или видео? Так по/movies/genre/{id}/film/{id} - фильмы
/music/albums/{id}/tracks/{id} - музыка
Далее. Если я знаю id трека или фильма мне надо дать возможность обратиться непосредственно к нему:music/track/{id} - всё
Если я не знаю какой трек мне нужен я прошу все треки из направления музыкального, например rap у него id=13music/style/13
По этому запросу выдаются пачки направления по 100, 300 или 1000 штук в зависимости от ресурсов и можно указать пагинаторmusic/style/13/2 - вторую страницу направлений мне покажите
Именно поэтому параметры лучше передавать в явном виде в url типа style=13&page=2 потому что так не запутаешься что такое 13 и что такое 2.
Если я совсем ничего не знаю и жанры тоже должен быть вспомогательный метод для получения всех жарнов, как у ВК для получения городов например. Запрос вида:music/allganre?page=0
отдаёт 100 пар вида "название жарнра -> id" так сделав 5 запросов с page=0/1/2/3/4 я в своём приложении смогу иметь всю базу возможных жанров. Можно сделать метод что бы получить жанр конкретной песни:music/getganre?track=1456
И т.п.music/getalbums/1456 - получить все альбомы исполнителя
music/detailalbum/1456 - получить все данные об альбоме (год выпуска и т.п.)
music/tracksalbum/1456 - получить список треков конкретного альбома
В общем идите не от частного к общему а наоборот, представьте с чего начать работу человеку который ничего не знает. Максимальную атомарность запросов введите что бы они были между собой никак не связаны. И человек сначала получит жарны, по жанру список исполнителей, по нему список альбомов, по нему список песен, по нему данные о нужной песне. И это всё отдельные запросы.

Худший ответ: Как-то непонятно: обычно методы (аналоги: create, set, get,update, delete и т.д.) выносятся (монтируются) на точки входа клиентских запросов (endpoint).
Все передаваемые методу параметры - это уже POST JSON (в большинстве случаев).
Бывают и исключения, когда методы простые и параметры идут в адресе endpoint, но тогда адрес должен возвращать БЕЗ редиректов и сервер должен корректно "понимать" этот запрос, т.к. фактически это уже поисковый запрос, не имеющий отношения к RESTful.напр. пользователю понравился музыкальный трек, он переходит по ссылке /media/{track_id}, а его редиректит на /music-groups/{mg_id}/albums/{a_id}/tracks/{track_id}Адрес не меняем (без редиректа!), но можем вернуть в ответе расширенную информацию о треке, группе, альбоме в виде структуры (массив или дерево).
Вопрос: User id facebook разный для одного аккаунта?

Лучший ответ: id пользователя получаемый через api приложений действительно уникальный для каждого приложения. Это сделано что бы не было возможности получить реальный профиль игрока.

Худший ответ: Идентификаторы пользователей разные между разными приложениями. Для того, чтобы они были одинаковые, нужно было создавать тестовую версию приложения.
Если нужно идентифицировать одних и тех же пользователей, то необходимо использовать Business Manager, в который надо добавлять все приложения. Если у вас одна компания, то это очень даже удобно. Если несколько, то там есть добавление партнеров, когда одна компания становится партнером другой.
Уникальные идентификаторы сделаны с целью повышения конфиденциальности данных пользователей и уменьшить отслеживание.
Вопрос: Как убрать визуальное изменение адаптивной верстки работающей на js?

Лучший ответ: Примените инлайново стиль visibility: hidden для блока, а потом в  том же JS примените стиль visibility: visible для скрытого блока

Худший ответ: Прелоадер поставить
Вопрос: Как убрать index.html из адресной строки?

Лучший ответ: можно добавить правило rewrite c / на /app/index.html

Худший ответ: можно через PHP, для примера через библиотеку AltoRouter
Вопрос: Данные уходят, но модель ругается, что их нет — почему?

Лучший ответ: У Вас срабатывает$model = new Test();
$model->save(); //тут идет валидация, а Вы указали 2 параметра как обязательные, а они пустые
А там пустые значения. О чем и свидетельствуют ошибки валидации. Сделайте так и ошибок не будет:$model = new Test();
$model->code = 12;
$model->name = 'Иннокентий';
$model->save();
или$model = new Test();
$model->load(Yii::$app->request->post());
$model->save();

Худший ответ: Форма у тебя в $_POST['Test'], а в модель ты загружаешь просто $_POST. Нужно так: $model->load(Yii::$app->request->bodyParams['Test'])
Вопрос: Хочу в сборку фронтенд проекта включить бутстрап. Как правильно сделать, чтобы все заработало?

Лучший ответ: Советую просмотреть вот это

Худший ответ: Чет бродил по своим вопросам и ответам, и понял что можно сюда сбросить код для новичков
gulp.task('sass', function () {
	return gulp.src([
		'./node_modules/bootstrap/scss/bootstrap.scss',
		'./node_modules/font-awesome/scss/font-awesome.scss',
		'./src/scss/*.scss'
		])
	.pipe(sass().on('error', sass.logError))
	.pipe(autoprefixer({
		browsers: ['last 4 versions'],
		cascade: false
		}))
	.pipe(concat('style.css'))
	//.pipe(cssmin())
	.pipe(rename({suffix: '.min'}))
	.pipe(gulp.dest('./dist/css'))
	});
Естественно что все пакеты нужно установить заранее, ну и так же создать таски, которые переместили бы шрифты и скрипты. Надеюсь кому-то поможет.
Вопрос: Переходить ли с файловой базы 1С на SQL?

Лучший ответ: Все просто-
1) Если в базе одновременно работает не более 2 пользователей -  смысла нет.
    Если в базе одновременно работают 2-5 пользователей - можно задуматься над переходом, оценить нагрузку.
    Если в базе одновременно работает более 5 пользователей - надо переходить.Важно - речь идет о пользователях, которые одновременно, активно, работают в одной базе!
По размеру тоже есть ограничения, но там пока не упрется, у вас вроде не слишком большая но учитывая рост базы - желательно уже переходить на SQL.

Худший ответ: Переходить, будет стабильнее, кроме того - файловый вариант имеет ограничение по размеру файлов, желательно настроить RemoteApps - работает намного стабильнее, чем классический клиент-серверный вариант.
Вопрос: Можете ли оценить работу верстальщика на моем сайте?

Лучший ответ: Скажите, а дизайн вам рисовал тоже один из топ 10 дизайнеров на бирже?=)
Если серьезно - как верстка может быть ужасной, если она соответствует макету? Если что-то не соответствует тз, например адаптивность - требуйте дорабатывать.

Худший ответ: На мой взгляд это новичок, который не так давно закончил обучение, но опыта еще не хватает.
Вопрос: Как собрать установочный пакет на Linux для Linux?

Лучший ответ: 0) Желательно все упаковать в virtuelenv, если используете pip. Или использовать стандартные пакеты системы.
1)  Создаете каталог для своего пакета, например myservice-0.001
2)  Кидаете все свои исходники в этот каталог, пути ставите, как они у вас будут в целевой системе
Например: etc/systemd/system/myservice.service
opt/myservice/...
opt/.myservice-venv/...
usr/bin/myservice
И т.д.
3) Создаете там же каталог DEBIAN, в него кладете файл control - https://www.debian.org/doc/debian-policy/ch-contro...
,  и файл postinst (опционально) - https://www.debian.org/doc/debian-policy/ch-mainta...
В control описываете свои зависимости и название пакета, какие пакеты замещаетpostinst - исполняемый, запускается после установки пакета, пользхователей там создать, сервис запустить и т.д.root@xxx:~/xxx-2.40# cat DEBIAN/control
Package: xxx
Version: 2.40
Section: custom
Priority: optional
Architecture: all
Essential: no
Installed-Size: 171700
Maintainer: xxx.ru
Description: XXX DS system
Depends: samba, isc-dhcp-server, python-twisted, libdate-manip-perl, libio-socket-multicast-perl
Replaces: isc-dhcp-server, samba
Recommends: sudo, vim, nano
иroot@xxx:~/xxx-2.40# cat DEBIAN/postinst
#!/bin/sh
# postinst script for webpy-example
#
# see: dh_installdeb(1)

set -e

# summary of how this script can be called:
#        * <postinst> `configure' <most-recently-configured-version>
#        * <old-postinst> `abort-upgrade' <new version>
#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
#          <new-version>
#        * <postinst> `abort-remove'
#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
#          <failed-install-package> <version> `removing'
#          <conflicting-package> <version>
# for details, see http://www.debian.org/doc/debian-policy/ or
# the debian-policy package

# source debconf library
. /usr/share/debconf/confmodule

case "$1" in

  configure)
    adduser --quiet --system --home /inbox  xxx || echo "User xxx existed!"
    usermod -p yyyy xxx
    (echo new123; echo new123) | smbpasswd -as xxx
    smbpasswd -e xxx
    systemctl enable xxx
    systemctl start xxx
  ;;

  abort-upgrade|abort-remove|abort-deconfigure)
    exit 0
  ;;

  *)
    echo "postinst called with unknown argument \`$1'" >&2
    exit 1
  ;;

esac

# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.

#DEBHELPER#

db_stop
exit 0
4) идете на каталог ниже и выполняетеdpkg-deb --build  myservice-0.001
Рядом получаете файло  myservice-0.001.deb
Доне.
PS.Про иконки и прочее отдельно читайте, этого я вам не скажу.

Худший ответ: pip install PyInstaller 
в cmd или как там на LInux )
pyinstaller script_name.py --onefile --noconsole
Соберётся приложение со всеми библиотеками
в папке dist готовое приложение которое запуститься на Linux 
на другом компьютере
Вопрос: Как спроектировать структуру таблиц для семинаров?

Лучший ответ: Можно так:

Худший ответ: seminars: 
id | title | finished_at | started_at | city_id | user_seminar_id
user_seminar:
user_id | seminar_id
users:
id | first_name | last_name
Наверное хотят проверить насколько вы понимаете отношение Много-ко-многим. Один и тот же участник может быть на нескольких семинарах.
Вопрос: Наложить текст в таком стиле?

Лучший ответ: Поддерживаю Бонда. Пример такой реализации: https://jsfiddle.net/m1m8hepL/

Худший ответ: Я бы сделал через :before елемент в закинул в абсолют его. Картинка на фоне или текст с похожим шрифтом.
Вопрос: Можно ли до конца почасового контракта снимать деньги, полученные по этому контракту?

Лучший ответ: снимайте, это проблема клиента если он не отвечает, надо спросить его на апворке чтобы были доказательства

Худший ответ: ой да с чего запросит возврат, сам же говоришь пришли к соглашению + тебе оплачивают же по часам а не сдельно. 
не парься снимай. (клиенту вообще пофигу когда ты их снимаешь).
Вопрос: Почему $_POST оказывается пустым (axios)?

Лучший ответ: Всем спасибо за ответы, вопрос решен.
Для того чтобы $_POST не был пустым, нужно в PHP сначала прописать: $_POST = json_decode(file_get_contents('php://input'), true);  а потом уже обращаться к необходимым атрибутам

Худший ответ: Потому что axios по умолчанию отправляет параметры в теле запроса как Content-Type: application/json и чтобы их прочитать нужно в PHP принимать так:var_dump(file_get_contents('php://input'));
В итоге вы получите JSON-строку и сможет раскодировать ее получив все параметры - json_decode
Способы отправки параметров в Content-Type: application/x-www-form-urlencoded описаны в документации: https://github.com/axios/axios#using-applicationx-...
Или вы просто можете отправить URL-кодированную строку, а не объект, в параметры:axios.post('aaa.php?action=create', 'myvalue=строка&sub=ahaha&value=22')
    .then(function(response) {
    .....
Вопрос: RDP окошко одно а управляем несколькими ПК. Реально?

Лучший ответ: Зачем автоматизировать тыканье, когда его можно избежать . Ansible, Chef, Puppet выбираем так сказать на свой вкус и цвет. Есть bat файлы, есть PowerShell. VBS на худой конец . AD с его свистелками.

Худший ответ: Нужно не тыканье мышкой автоматизировать, а то, что это тыканье делает. PowerShell/VBS позволяет решить любую задачу по администрированию компа скриптом.
Вопрос: Как вызвать функцию js в этом случае?

Лучший ответ: function foo()
{
  this.baz = function(){
  
  }
  this.bar = function()
  {
    var that = this; //<-- Вот так, как вариант
    $.ajax({
       success: function (html)
                {
          that.baz(); //<-- that
        }
    });
  }
}

Худший ответ: ES5function Foo() { //конструкторы пишем с большой буквы
 //...
}

//методы пишем в прототип
Foo.prototype = {
  baz: function() {
    //...
  },
  bar: function() {
    var $this = this;
    $.ajax({
      success: function(html) {
        $this.baz();
      }
    });
  }
};
ES2015class Foo {
  constructor() {
    //...
  }
  baz() {
    //...
  }
  bar() {
    $.ajax({
      success: html => {
        this.baz();
      }
    });
  }
}
Вопрос: Как сделать, чтобы скрипт работал при нажатии на ::before?

Лучший ответ: Есть хак для css,.steps li { pointer-events: none; }
.steps li:before { pointer-events: all; }
Тогда сам элемент для ивента захватываться не будет, а его псевдоэлементы будут.upd: пример для убедительностиupd2: Что происходит в данном случае? Ваш ивент распространяется и на элемент, и на его псевдоэлементы. С помощью pointer-events мы отключаем срабатывание ивентов на элементе, а на псевдоэлементах оставляем. Таким образом достигаем нужного результата.

Худший ответ: С псевдоэлементом это не пройдет. Вместо before внутри li разместите span и на него уже событие.
Вопрос: Как семантически правильно сверстать список статей или список товаров?

Лучший ответ: Я бы сделал разметку вот так https://jsfiddle.net/webirus/q8t9o7s7/1/

Худший ответ: Ни один из вариантов не выглядит идеальным, но если выбирать из них - третий, пожалуй, получше.
Манеру оборачивать в ul/li всё, что хоть как-то похоже на список - считаю псевдосемантической шизой.
По-моему, эта мода схлынула уже несколько лет как.
Вопрос: Rails new: Системе не удается найти указанный путь?

Лучший ответ: Доброго времени суток, если проблема еще актуальна есть ответ (за последующие ошибки, ответственность не несу)
И так чтобы исправить эту ошибку нужно:
1. Пройти по пути к rails.bat (для тех кто незнает по умолчанию ставится C:\RailsInstaller\Ruby2.3.0\bin rails.bat);
2. Открываем его блокнотом;
3. Стираем все и вставляем вот этот путь@ECHO OFF
IF NOT "%~f0" == "~f0" GOTO :WinNT
ECHO.This version of Ruby has not been built with support for Windows 95/98/Me.
GOTO :EOF
:WinNT
@"%~dp0ruby.exe" "%~dpn0" %*
4. Сохраняйте, вводите в cmd опять rails -v и уоля.
Спасибо за внимание.
Для наглядности оставляю картинку

Худший ответ: Не уверен, но кажется для того что бы в командной строке работал rails new то нужен Node.js