Visitors must select their city first. How to approach this?

Hi guys.

I have an app where visitors can see offers in their cities. So a visitor must select his city first in order to access the app (much like Groupon, using just a cookie though).

How should I approach this? I mean,right now what I’m doing is I have the action for the homepage (which lists all offers) and a before_filter applied to it, which redirects the user if no cookie is found. Is this the right way though?

I have an app where visitors can see offers in their cities. So a visitor must select his city first in order to access the app (much like Groupon, using just a cookie though).

How should I approach this? I mean,right now what I'm doing is I have the action for the homepage (which lists all offers) and a before_filter applied to it, which redirects the user if no cookie is found. Is this the right way though?

It would work, but you might look at Maxmind's geoip lite city database... if no cookie is found, look them up and try to get close. Much nicer experience to say guess their city with a little link to let them change it if you guessed wrong...

-philip

I would do it using the session rather than a cookie (though the same thing underneath of course, but more railsey).

Colin

I’m using the cookie rather than session since a user that will set his city for the first time, is unlikely to “change a city”. So I suppose that the visitor will always be interested in his City’s offers (well at least until the cookie expires), that’s why I wanted to persist this information. That way, since I don’t have any authentication system, the site always remembers the device’s location so the user doesn’t have to choose the city everytime he closes the browser.

What do you think about that?

I think, we can also use http://geokit.rubyforge.org/api/geokit-rails/ (Geokit Plugin: Geocoder, Distance Finders, and more) to get visitor ip, city and country.