Ruby On Railsで作成したWebアプリで、ユーザーの閲覧情報を取得したいです。
js.cookie.jsでIPアドレスと閲覧履歴、閲覧時間を取得しています。
ruby
1# application.html.erb headタグ内 2 <%= hidden_field_tag :user_ip, request.remote_ip, class: 'cookie_user_ip' %> 3 <%= hidden_field_tag :url, request.path, class: 'cookie_url' %> 4 <script type="text/javascript"> 5 var date = new Date(); 6 var now = date.getFullYear() + "/" + (date.getMonth() + 1) + "/" + date.getDate() + " " + date.getHours() + ":" + date.getMinutes(); 7 var user_ip = $('.cookie_user_ip').val(); 8 var url = $('.cookie_url').val(); 9 var output = user_ip + " URL: " + url + " 時間:" + now; 10 Cookies.set('cookie_user', output); 11 </script>
ここで取得した情報を管理画面のダッシュボードで一覧表示させたいのですが、以下のコードでは一つしか表示できません。
html
1<div id="output1"></div> 2<script type="text/javascript"> 3 var cookie_user = Cookies.get('cookie_user'); 4 window.onload = function onLoad() { 5 target = document.getElementById("output1"); 6 target.innerHTML = cookie_user; 7 } 8</script>
この実装では、「127.0.0.1 URL: /products/9 時間:2018/11/29 14:13」のように表示されます。
複数のユーザーの閲覧情報を一覧表示させるには、どのようにコードを修正すればいいでしょうか?
また、javascriptで取得した変数をhtmlに渡してデータを加工したいのですが、どうすればいいのかわかりません。
具体的には、current_userが存在する場合、そのIpAddressモデルのレコードを作って(つまり登録済みのユーザーIDとパスワードでログインした際にIpAddressモデルのレコードを作成します)、
ruby
1IpAddress.create(user_id: current_user.id, address: request.remote_ip)
すでにIpAddressのレコードに、remote_ipと同じaddressカラムがあれば、remote_ipの代わりにuser名を表示させるようにしたいです。
JavaScriptをほとんど触ったことがないので、かなり初歩的な質問になってしまって申し訳ありませんが、
ご教示の方、何卒よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー