Как сказали другие, ваше представление сначала отображается на сервере, а затем отправляется в браузер. К тому времени, когда он попадает в браузер, весь ваш код Ruby уже давно выполнен, и результатом этого является Javascript, который вы видите в браузере. Попробуйте посмотреть источник страницы в вашем браузере; Вы должны увидеть, что строка:
alert('<%= session[:item_form_type]%>');
уже заменено без кликов на:
alert('from_new_item_click');
Если вы действительно хотите изменить свой код RoR на стороне сервера, когда пользователь предпринимает какое-либо действие, вам необходимо использовать AJAX. По сути, AJAX позволяет вашему коду Javascript отправлять GET / POST на URL. Таким образом, в вашем обработчике событий .click вы можете нажать на URL, который вызывает действие, которое меняет любые переменные сеанса, которые вы хотите.
(Извините, если вы уже знаете все об AJAX; я подозреваю, что вы, возможно, не знаете его).