Я думаю, вы хотите сделать это с AJAX.Я не собираюсь настраивать это для Rails 1, но вы должны быть в состоянии следовать этой идее.Ваш первый выпадающий список содержит список штатов, и в каждом штате есть список школ.
// some js file that's loaded from your layout
// When your states dropdown is changed it fires an ajax call
var success = function(response) {
for (var school in response.schools) {
$('#schools_dropdown').html('');
var option = $(document.createElement('option')).html(school.name).val(school.id);
option.appendTo($('#schools_dropdown'));
}
});
$('#states_dropdown').change(function() {
$.get('/state/' + $(this).val() + '/schools', success);
});
# your schools controller
def index
@schools = State.find(params[:id]).schools
respond_to do |format|
format.js { render :json => @schools }
end
end
Так что, возможно, у вас нет jQuery и, возможно, рендеринг json отличается от Rails 1 ... но идея та же.У вас есть некоторый javascript, прикрепленный к вашему раскрывающемуся списку состояний, чтобы при его изменении вы извлекали идентификатор этого состояния и выполняли AJAX-вызов вашего контроллера.Последний параметр этого вызова AJAX - это функция успеха, которая перебирает все школы, отправленные обратно контроллером, очищает раскрывающийся список школ и добавляет опции в раскрывающийся список по одному.