私はKaminari gemを使用してアプリケーションに無限のスクロールを実装しています。私が抱えている問題は、コントローラにAjaxコールで毎回検索パラメータを渡すことです。Railsページ分割 - 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
エンド
これは、ユーザーがページの一番下までスクロールしたときに、私は呼んでアヤックスである:私は正常に動作しているのJavascriptで応答したときに、私は、レンダリングすることを
$.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変数を渡す方法をGoogleが持っているが、それは私がしようとしているものにはあまりにも複雑に思えます。どのようにすれば、毎回それが通過することを確認できますか?
'<%= @search %>'
doesntのは、あなたが期待どおりに動作:あなたの助け
どこにajaxコードを入れましたか?どのファイルですか? – EJ2015