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