如何在rails中自动检测用户代理

时间:2011-10-04 22:54:47

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 user-agent

我有一个小问题让我的用户代理检测工作。每当我在生产上尝试它都不起作用..我在我的应用程序控制器中有这个

before_filter :prepare_for_mobile

private

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

def prepare_for_mobile
  session[:mobile_param] = params[:mobile] if params[:mobile]
  request.format = :mobile if mobile_device?
end

但是当我处于生产模式时它不起作用..所以我也想知道如何为黑莓andriod,iphone,nokias3,bada和windows os设置用户代理。谢谢

1 个答案:

答案 0 :(得分:0)

你可以发布config / environments / production.rb文件的副本吗?

边注: 如果你不想破坏xml或json输出,你可能想要添加这样的东西(使用responds_to块):

def prepare_for_mobile
  if request.format == 'text/html'
    session[:mobile_param] = params[:mobile] if params[:mobile]
    request.format = :mobile if mobile_device?
  end
end