Rails 3 обнаруживает запрос от мобильных клиентов

Мои настройки: Rails 3.0.9, Ruby 1.9.2

Мое приложение должно обслуживать мобильные и веб-макеты в зависимости от источника запроса. Мне нужно поддерживать все основные интерфейсы мобильных клиентов, такие как iPhone, Android, Blackberry и т. Д. Какой самый простой способ обнаружить это в моем коде?

2 ответа

Решение

Самый простой способ сделать это - разобрать request.user_agent от RegEx / Mobile | webOS /. Переменная Mobile/Full version может быть сохранена в сеансе, а помощник будет полезен для включения мобильного CSS:

#controller
def mobile_device?
  if session[:mobile_param]
    session[:mobile_param] == "1"
  else
    request.user_agent =~ /Mobile|webOS/
  end
end

helper_method :mobile_device?


#layout
<%= stylesheet_link_tag 'mobile' if mobile_device? %>

Railscasts 199 - пошаговое руководство для вас.

Он вернет User Agent.

request.user_agent =~ /Mobile|Blackberry|Android/ # OR WHATEVER
Другие вопросы по тегам