我正在使用Rails 3.2。切換時錯誤的應用程序erb文件
在我的應用程序中,我有一個application.html.erb
服務'正常'模式和application.mobile.erb
文件服務'移動'模式。
當我以'正常'模式加載主頁時,application.html.erb
文件正確地以'正常'模式主頁home.html.erb
提供。當我切換到「移動」模式時,application.mobile.erb
正確地以「移動」模式主頁home.mobile.erb
提供。當我切換回「正常」模式時,會提供正確的「正常」模式home.html.erb
文件,但文件不正確的application.mobile.erb
(「移動」模式)文件。
如果在application.mobile.erb
提供的服務不正確後刷新頁面,則application.html.erb
已正確加載。
這是用來從正常模式切換到移動模式
<a href="/en?mobile=0" class="ui-link">Full Site</a>
鏈路這是用於如果我改變正常開關從移動模式切換到正常模式
<a href="/en?mobile=1" class="ui-link">Mobile Site</a>
鏈路所以它是這樣從一個不同的子域請求(這是我已經設置的子域)
<a href="http://mobile.localhost.local:3000/en?mobile=0" class="ui-link">Full Site</a>
應用程序erb文件已正確切換,並且所有內容均有效。注意:如果我添加相同的主機,則不起作用。
大概rails路由處理不同的路徑在同一個服務器上,但我真的不明白如何以及如果這是一個錯誤?
任何人都知道發生了什麼事?
UPDATE
在處理參數的application_controller的代碼是:
before_filter :set_locale, :prepare_for_mobile
...
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
而且我有這個在我的mime_types.rb
Mime::Type.register_alias "text/html", :mobile
下面是一個例子它發生在哪裏http://www.zode64.com
個注意右上角移動和正常環節都有新的子域,如果你使用Firebug來改變當前的子域它仍然會打開正確的網頁,但與錯誤application.erb
請使用params [:mobile]變量添加您的代碼。 – thesis