Как разработчик рельсов, я предлагаю придерживаться принципов ненавязчивого JavaScript. Когда дело доходит до рельсов, обычно это означает, что вы не должны просто написать одно большое представление для обработки всех ваших функций. Это облегчает разработку и поддержку вашего представления HTML, упрощает поддержку вашего поведения и, как правило, помогает лучше понять, что именно делает ваше приложение. В этой связи я избегаю рельсовых помощников по javascript любой ценой.
Что бы я сделал, это разделил ваше поведение на файл javascript, который вы сами кодировали. Используя библиотеку, такую как jquery (мой любимый для такого рода вещей - lowpro, но я буду первым, кто признает, что я немного настроен), довольно легко прикрепить обработчик событий к определенным элементам (или целый класс элементов сразу).
Для поля выбора обработчик onChange будет запущен, когда пользователь изменит выбор. свойство selectedIndex
элемента сообщит вам, какая опция выбрана, а массив options
позволит вам найти связанную опцию. Итак, в вашем обработчике вы можете сделать что-то вроде следующего (используя прототип):
function(e) {
var element = Event.element(e)
var index = element.selectedIndex
var option = element.options[index]
if(option.value == "Show fields")
$('hidden-fields').show()
else
$('hidden-fields').hide()
}