Я думаю, что лучшим вариантом было бы сделать ajax-вызов контроллеру и передать через него параметры.
Затем с помощью возвращенной информации вы должны повторно заполнить те части страницы, которые необходимо повторно заполнить.
В ваших маршрутах вам понадобится что-то вроде этого:
get "article/between_years", :controller=>"article", :action=>"between_years"
и в вашем контроллере у вас будет функция
def between_years
@articles = Article.where(:year => params[start_year]...params[start_year])
render :layout=>false ### this line makes it so the application.haml (or html.erb) is not rendered along with your code)
end
и в каталоге app> views> article у вас будет файл haml или erb с html, который вы хотите добавить.
тогда ваш jquery будет выглядеть примерно так:
$.get("/article/between_years",{start_year:1991,end_year:2011},function(data, status, xhr){ /// does ajax call to the article route we set up above /
..
$("body").append(data); ///appends the html data returned to the body
///you will probably want to change this a bit
///so every thing is added to the proper place
...
});
Некоторое время назад я написал еще один ответ, в котором изложен аналогичный рабочий процесс, вы можете взглянуть на это => Автоматическое заполнение текстовых полей на основе выбранного элемента из другого collection_select в Rails 3
person
BananaNeil
schedule
02.12.2011