1

所以我使用用戶代理檢測服務於我的應用程序中的不同視圖,通過服務example.mobile.haml而不是example.html.haml。除了設計視圖發生的一些有趣的事情之外,它一切正常。iOS /手機檢測與設計

當我將根作爲桌面UA(Safari,Mac OS)時,它正確地重定向到/用閃光燈登錄,當我作爲移動UA執行此操作時,它不重定向並僅顯示閃光燈並呈現不額外的HTML。

同樣,作爲桌面UA登錄/註銷正確註銷並重定向到/登錄,因爲它應該。但作爲移動UA點擊/註銷,破壞你的會話,但不會重定向。

我已經遵循了關於設計wiki的所有說明,但這一切都不起作用。做所有檢測的代碼如下:

#application_controller.rb 

def format_for_mobile 
    request.format = :mobile if mobile_user_agent? 
end 

def mobile_user_agent? 
    request.env["HTTP_USER_AGENT"] 
    request.env["HTTP_USER_AGENT"][MOBILE_USER_AGENTS] 
end 


# config/initializers/devise.rb 

config.navigational_formats = [:"*/*", "*/*", :html, :to_mobile] 


# config/initializers/mobile_responder.rb 

ActionController::Responder.class_eval do 
    alias :to_mobile :to_html 
end 

回答

0

管理摸不着頭腦自己。 before_filter :format_for_mobile在驗證用戶之前,修復了/ login問題。

對於/註銷,我必須做到以下幾點:

# controllers/sessions_controller.rb 

class SessionsController < Devise::SessionsController 
    before_filter :format_for_mobile, :except => :destroy 
end