В вашем втором примере (с использованием Rails) возникает проблема:
<span id="msQuotedBy">
В вашем примере с ручным кодированием «msQuotedBy» является идентификатором select, а не span. В JS $('#msQuotedBy').val()
пытается прочитать из HTML-элемента, который имеет идентификатор msQuotedBy и получает его значение. <spans
не имеют значений, но <selects
делайте.
Вы перевернули его, переместив идентификатор на другой элемент. Идентификаторы должны однозначно идентифицировать элемент (следовательно, «ID») - перемещение его случайно происходит с запросом о проблемах.
Убедитесь, что ваш код Rails устанавливает правильный идентификатор, <select
когда он его создает. Из вашего комментария, правильный общий код должен быть:
<span id="msQuotedBySearch">
<b>Filter by Initials: </b>
<%= collection_select(:msQuotedBy, :select, User.all, :initials, :initials) %>
</span>