TJ Sherrill
TJ Sherrill

Reputation: 2645

is there a "rails" way to redirect if mobile browser is detected?

I want to run a user-agent check but only on my homepage (static_controller#home) I have taken a close look at the code: http://www.arctickiwi.com/blog/mobile-enable-your-ruby-on-rails-site-for-small-screens and it seems close but it never gets tied together, its just method creation... I am open to a jquery method but would prefer ruby/rails over js.

I only really care about iphone and droid...

Upvotes: 9

Views: 7424

Answers (4)

Joshua Dance
Joshua Dance

Reputation: 10472

From this SO answer:

The best way is to use some supported plugin/gem, like browser

This is much better than writing your own regex.

For example Opera 11.50 has the following user_agent:

Opera/9.80 (Android 2.3.7; Linux; Opera Mobi/ADR-1111021303; U; en-GB) Presto/2.9.201 Version/11.50

The suggested regex of:

request.user_agent =~ /Mobile|webOS/

would total miss that.

You also get the benefit of knowing what platform (mac, windows etc), tablets, ie6 etc. I am a rookie rails dev, I set it up and got it working in like 2 minutes. Highly recommended.

Upvotes: 4

tee
tee

Reputation: 4409

Try this: https://github.com/neighborland/mobu

Mobu provides a Rails controller concern called DetectMobile. Mobu does server-side User Agent detection to categorize requests as mobile, tablet, or default.

Mobu modifies your rails view paths based on the request type. It does not require custom MIME types or separate subdomains.

Upvotes: 0

Kirk
Kirk

Reputation: 1541

http://detectmobilebrowsers.com/

Extremely useful for me.

Upvotes: 4

Mischa
Mischa

Reputation: 43298

Check out this screencast. They suggest using the following for detecting a mobile device:

request.user_agent =~ /Mobile|webOS/

Upvotes: 18

Related Questions