# Is it possible to determine a page request from a refresh

**URL:** <https://www.ruby-forum.com/t/is-it-possible-to-determine-a-page-request-from-a-refresh/148066>\
**Category:** Rails\
**Created:** [September 8, 2008, 10:46pm UTC](https://www.ruby-forum.com/t/is-it-possible-to-determine-a-page-request-from-a-refresh/148066 "2008-09-08T22:46:38Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![PeteSalty](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/bc79bd/32.png) [@PeteSalty](https://www.ruby-forum.com/u/PeteSalty)\
**Post date:** [September 8, 2008, 10:46pm UTC](https://www.ruby-forum.com/t/is-it-possible-to-determine-a-page-request-from-a-refresh/148066/1 "2008-09-08T22:46:38Z")

</div>

we’re trying to add a feature where we log a view each time a user  
looks at a particular item (it’s being logged as a database record  
against the item id).  
Problem is, if that user refreshes the page we don’t want it to  
register as another view. Users may or may not be logged in when  
viewing items so we can’t log it against the user id.

Any ideas?

D

---

<div class="post-metadata">

**Author:** ![PeteSalty](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/bc79bd/32.png) [@PeteSalty](https://www.ruby-forum.com/u/PeteSalty)\
**Post date:** [September 8, 2008, 11:47pm UTC](https://www.ruby-forum.com/t/is-it-possible-to-determine-a-page-request-from-a-refresh/148066/2 "2008-09-08T23:47:46Z")

</div>

PeteSalty wrote:

> we’re trying to add a feature where we log a view each time a user  
> looks at a particular item (it’s being logged as a database record  
> against the item id).  
> Problem is, if that user refreshes the page we don’t want it to  
> register as another view. Users may or may not be logged in when  
> viewing items so we can’t log it against the user id.

Stash its id in the session:

session[:viewed] ||= {}  
unless session[:viewed][id]  
add\_one\_eyeball(id)  
session[:viewed][id] = true  
end

There might be a tighter way to do that…

---

<div class="post-metadata">

**Author:** ![PeteSalty](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/bc79bd/32.png) [@PeteSalty](https://www.ruby-forum.com/u/PeteSalty)\
**Post date:** [September 9, 2008, 7:34am UTC](https://www.ruby-forum.com/t/is-it-possible-to-determine-a-page-request-from-a-refresh/148066/3 "2008-09-09T07:34:46Z")

</div>

Maybe, although we try not to put anything into session if we can help  
it. Thanks for the idea though.

Any others?

D.

---

<div class="post-metadata">

**Author:** ![PeteSalty](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/bc79bd/32.png) [@PeteSalty](https://www.ruby-forum.com/u/PeteSalty)\
**Post date:** [September 9, 2008, 12:11pm UTC](https://www.ruby-forum.com/t/is-it-possible-to-determine-a-page-request-from-a-refresh/148066/4 "2008-09-09T12:11:01Z")

</div>

Can you muck around with Javascript instead?

> **[Radar - O’Reilly](https://www.oreilly.com/radar/?page=4)**
>
> Now, next, and beyond: Tracking need-to-know trends at the intersection of business and technology

---

<div class="post-metadata">

**Author:** ![PeteSalty](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/bc79bd/32.png) [@PeteSalty](https://www.ruby-forum.com/u/PeteSalty)\
**Post date:** [September 10, 2008, 3:45am UTC](https://www.ruby-forum.com/t/is-it-possible-to-determine-a-page-request-from-a-refresh/148066/5 "2008-09-10T03:45:20Z")

</div>

If you don’t want to store anything in the session, how about checking  
the referrer url in your controller action?

def show  
@item = Item.find(params[:id])  
dont\_log\_page\_view = request.env[“HTTP\_REFERER”] =~ //items/  
#{@item.id}/  
…  
end

That will check to see if the request for the item has come from the  
same item page. (Modify the regexp as needed depending on your route)

Some browser plugins stop the browser from sending the http referrer  
in the request, but as far as I know it’s usually only the paranoid  
who use those.

Jeremy
