On Fri, Dec 5, 2008 at 5:09 PM, Petan Cert
<[EMAIL PROTECTED]> wrote:
> I've made a really simple page views counter.
>
> def show
>  @post = Post.find......
>  addcount = @post.views += 1
>  @post.update_attribute "views", addcount

You don't need the extra variable.

@post.update_attribute 'views', @post.views + 1


> end
>
> Its working fine, but if someone hold the F5 key, it keeps counting and
> counting. Which is not a really good. Is there a way how to force the
> counter to not keep counting while someone is holding the F5 key?

Store their IP address and a timestamp and then don't count more views
from that same IP for a while.

For the IP address use request.env[ 'HTTP_X_FORWARDED_FOR' ] if your
Rails app is behind a proxy, or request.env[ 'REMOTE_ADDR' ] if it's
not.



-- 
Greg Donald
http://destiney.com/

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to