私はいくつかの div を持っています。ユーザーがこの div をホバーすると、ajax 呼び出しを実行し、アクションをトリガーして、誰かがその div をホバーしたことをデータベースに書き込みます。
フォームと link_to なしの純粋な jQuery。
可能な限り単純な例が必要です:)
私はいくつかの div を持っています。ユーザーがこの div をホバーすると、ajax 呼び出しを実行し、アクションをトリガーして、誰かがその div をホバーしたことをデータベースに書き込みます。
フォームと link_to なしの純粋な jQuery。
可能な限り単純な例が必要です:)
選択したソリューションに基づく作業コード
$(".hoverable").hover(function(){
console.log("hovered");
$.ajax({
type: "POST",
url: "/vastrodex",
data: {vastroman: $(this).attr('id'), vastrodexCount: 1}, // pass any additional parameters if you need
success: function(msg) {
console.log(msg); // do something on success e.g. console log the message
}
});
},function(){
});
HoverLogger (またはお好きなもの) と呼ばれるログ用の新しいモデルとコントローラーを作成することをお勧めします。そうすれば、HoverLogger コントローラーの create アクションを呼び出してログを作成するときに、ロジックを分離して RESTful にすることができます。
目的の div にクラス.hoverableがあると仮定します。
$(".hoverable").hover(
function () {
// send ajax when mouse enters hoverable object
$.ajax({
type: "POST",
url: "/hover_logger",
data: {logged: true}, // pass any additional parameters if you need
success: function(msg) {
console.log(msg); // do something on success e.g. console log the message
}
});
},
function () {
// do something when mouse leaves hoverable object
}
);
createアクションでイベントをログに記録します。
def create
HoverLogger.create!(user_id: current_user.id)
respond_to do |format|
format.js { render :nothing => true }
end
end
HoverLoggerは user_id とタイムスタンプを追跡します。HoverLogger create メソッドのルートも作成します。