как автоматически определить пользовательский агент в rails

#ruby-on-rails #ruby-on-rails-3 #ruby-on-rails-3.1 #user-agent

#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
  

но это не работает, когда я нахожусь в рабочем режиме .. поэтому я также хотел бы знать, как настроить пользовательский агент для blackberry andriod, iphone, nokias3, bada и ОС Windows. Спасибо

Ответ №1:

можете ли вы опубликовать копию своего файла config / environments / production.rb?

Примечание: вы, вероятно, захотите добавить что-то подобное, если не хотите прерывать вывод xml или json (с блоками respond s_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