ボタンがあり、クリックすると、気に入った製品IDがセッションに保存されます。すべてが AJAX を通じて行われます。
ページの下部で、保存された製品を表示し、jQuery を介して自動的に更新したいと考えています。ただし、ページを更新した場合にのみ div が表示されます。
すべてが正しいように見えますが、機能しません。
私のリンク:
<%= link_to "", remember_url(prop.id), method: :post,
id: 'remember_me',
class: "like #{like prop.id}",
data: { href: remember_url(prop.id)},
remote: true %>
コントローラーでの私の方法:
def remember_me
session[:product] ||= []
products_array = session[:product]
product = Product.find(params[:id])
if products_array.include? product.id
products_array.delete(product.id)
else
products_array << product.id
end
#redirect_to :back
#render :nothing => true
render partial: "static_pages/debag" #=> this is going to be "result" in AJAX.
end
render partial: 'static_pages/debag:
<%= session[:houses] %>
アヤックス:
$('a.like').click(function() {
$.ajax({
url: $(this).data('href'),
type: 'POST',
dataType: 'html',
success: function(){
suppose here I have to refresh session?
$(".session").html("<%= j(render(partial: 'static_pages/debag')) %>");
}
});
});
解決策: 答えは奇妙でした。しかし、今では機能しています。結果を関数とhtmlに追加しました。
$('input#start_page, a.like').click(function() {
$.ajax({
url: $(this).data('href'),
type: 'POST',
dataType: 'html',
success: function(result){
$(".session").html(result);
}
});
});