그래서 Kaminari 보석을 사용하여 응용 프로그램에 무한 스크롤을 구현합니다. 내가 겪고있는 문제는 컨트롤러에 매번 Ajax 호출에서 검색 매개 변수를 제공하는 것입니다.레일 페이지 매김 - 매개 변수가있는 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({
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));
}
});
}
부분 및 추가 페이지의 콘텐츠 나머지는 완벽하게 ..
$('.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 %>
그러나 검사 할 때 am이 리터럴 문자열 '< % = @search %>'로 수신되었습니다. 나는 JavaScript에 erb 변수를 전달하는 방법을 구글로했지만, 내가하려고하는 것에 너무 복잡하게 보인다. 그렇다면 어떻게하면 매번 통과 할 수 있습니까?
'<%= @search %>'
나던 당신이 예상대로 작동합니다 : 당신의 도움
아약스 코드는 어디에 넣었습니까? 어떤 파일? – EJ2015