Итак, я использую гем Kaminari для реализации бесконечной прокрутки в своем приложении. Проблема, с которой я сталкиваюсь, заключается в том, что каждый раз при вызове Ajax я передаю контроллеру параметры поиска.
def create
@onsearch = true
@lists = current_user.lists.all
@search = params[:search]
@page = params[:page]
puts "Search is #{@search}, page is #{@page}"
@outfits = Oufits.where("description LIKE ?", "%#{params[:search]}%").page(params[:page]).per(20)
respond_to do |format|
format.html
format.csv { send_data @outfits.to_csv }
format.xls
format.js {render :layout => false }
end
конец
Это ajax, который я вызываю, когда пользователи прокручивают страницу до конца:
$.ajax({
type: "GET",
url: url,
data : { search : '<%= @search %>'},
dataType: 'script',
beforeSend: function(){
$('.sk-wave').show();
},
complete: function(){
$('.sk-wave').hide();
},
success: function(response){
$('.sk-wave').hide();
},
error: function(jqXHR, textStatus, errorThrown ){
alert("oh no! ajax went wrong.")
$('.sk-wave').hide();
console.log("jqXHR = "+JSON.stringify(jqXHR));
console.log("textStatus = "+JSON.stringify(textStatus));
console.log("errorThrown = "+JSON.stringify(errorThrown));
}
});
}
Частичная часть, которую я отображаю, когда я отвечаю с помощью Javascript, работает нормально и отлично добавляет остальной контент на страницу.
$('.pagecontent').append("<%=j render(partial: 'search/outfits',
format: 'html') %>");
<% if @outfits.current_page == @outfits.total_pages %>
$('#view-more').remove();
<% else %>
$('#view-more a').attr('href', '<%= url_for(page:
@outfits.current_page + 1) %>');
<% end %>
Но после проверки параметр поиска получен в виде буквальной строки '‹%= @search %>' в моем контроллере. Я гуглил, как передать переменную erb в javascript, но это кажется слишком сложным для того, что я пытаюсь сделать. Как тогда я могу убедиться, что он прошел каждый раз? Спасибо за вашу помощь