У вас `authorized` это лямбда. Тоесть это функция, которая будет выполняться каждый раз, когда запрос придёт в рельсы.
А вот это `!authorized`, это отрицание от лямбды, оно всегда будет ложью. Это не отрицание результата выполнения лямбды, это отрицание для самого объекта лямбды.
Всегда юзайте второй. Помимо того, что навсегда себя обережете от возможных тупняков с динамично создаваемыми элементами, получите возможность биндить хендлер например не только на 1 ивент. Например если хотите обрабатывать mousemove и touchmove, то со вторым вариантом просто напишите
Никогда не используйте для many-to-many связей has_and_belongs_to_many! Используйте только нотацию has_many through. Однажды вам придется добавить в вашу связующую таблицу какое-то поле. Со связью организованной через has_and_belongs_to_many вы не сможете к нему обратиться.
Если в любой репе сделать ветку gh-pages, то ее содержимое будет доступно по адресу типа <username>.github.io/<repo>/. Может быть любое количество *.html-файлов (а так же скриптов, стилей и т.д.)
Вот мой пример: репо — https://github.com/hogart/omnicard, в вебе доступно как hogart.github.io/omnicard
capistrano это просто набор разных ssh команд под капотом, т.е. вопросы не к capistrano. Вы какую задачу хотите решить, знать кто именно задеплоил или что?