Rails 3检测来自移动客户端的请求

Bob*_*Bob 5 mobile ruby-on-rails ruby-on-rails-3

我的设置:Rails 3.0.9,Ruby 1.9.2

我的应用需要根据请求的来源提供移动与网络布局.我需要支持所有主要的移动客户端前端,如iPhone,Android,Blackberry等.在我的代码中检测这个的最简单方法是什么?

Ana*_*oly 8

最简单的方法是使用RegEx / Mobile | webOS /解析request.user_agent.Mobile/Full版本变量可以保存到session中,helper对于包含移动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? %>
Run Code Online (Sandbox Code Playgroud)

Railscasts 199是您的分步指南.


fl0*_*00r 7

它将返回用户代理.

request.user_agent =~ /Mobile|Blackberry|Android/ # OR WHATEVER
Run Code Online (Sandbox Code Playgroud)