在Rails 3中基于子域更改请求格式

时间:2011-07-08 11:22:03

标签: ruby-on-rails-3 routing

在我的Rails 3网站上,如果用户通过某个子域(例如mob.example.com)进入,我想将该请求的请求格式更改为“:mobile”。

最明智的方法是什么,我应该把这段代码放在哪里?

1 个答案:

答案 0 :(得分:1)

我以我认为最合理的方式做到了这一点:

module MobilizedController
  extend ActiveSupport::Concern

  included do
    before_filter :set_mobile_request_format, :if => :mobile_subdomain?
  end 

  private

  def set_mobile_request_format
    request.format = :mobile
  end 

  def mobile_subdomain?
    request.subdomains.include? 'm' 
  end 
end

class ApplicationController
  include MobilizedController
end