Я думаю, что лучшим вариантом было бы сделать 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
и вкаталог приложения> views> статьи, у вас будет файл 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
...
});
Некоторое время назад я написал еще один ответ, в котором описывался симуляционный рабочий процесс. Возможно, вы захотите взглянуть на это => Автоматическое заполнение полей text_fields на основе выбранного элемента из другого набора collection_select в Rails 3