2010-09-02 81 views
1

我正在設置request.format =:MobileControl內的ApplicationController before_filter。Rails link_to不自動使用request.format作爲鏈接中的擴展

before_filter :some_filter 
def some_filter 
    request.format = :mobile 
end 

我有這樣的映射路線:

map.my_list '/my_list.:format', :controller => "of_no", :action => "significance" 

當我做到以下幾點:

<%= link_to "My List", my_list_path %> 

我得到以下(實際如下):

<a href="/my_list">My List</a> <!-- THIS IS THE PROBLEM --> 

我希望這是(預期如下):

<a href="/my_list.mobile">My List</a> <!-- THIS IS THE EXPECTED --> 

但是,如果我做到以下幾點:

<%= link_to "My List", my_list_path(:format => "mobile") %> 

然後我得到預期的結果,但這樣做是爲了每一個「的link_to」是不是一個可行的解決方案。

有什麼想法?

謝謝

+0

如果在幫助程序中指定格式不可行,如何設置它? – 2010-09-02 02:40:05

+0

(我編輯了我的文章)我是否需要指定link_to helper中的格式。我認爲這是隱含的。 – nosretep 2010-09-02 02:51:38

+0

你有沒有想過這個?我遇到了同樣的問題。 – 2012-08-01 21:16:19

回答

0

,如果你想要的網址顯示my_list.mobile您應該只需要指定在助手的格式。但是,如果您的過濾器不使用URL來確定格式,並且您正在設置控制器中的格式,爲什麼還需要在URL中使用它?當request.format被覆蓋時,您的控制器應該在URL中響應.mobile格式。

您可能會在刪除路由定義中的.:format部分時脫身,並僅依賴於正在設置的請求對象。

+0

示例設置只是爲了顯示其他人遇到問題的最低設置。 我正在使用will_paginate,它固有地(並正確地相信)使用.mobile擴展名(在上面的設置下)呈現分頁鏈接。 我想知道如果我做錯了什麼,或者錯過了什麼,有效地阻止了「link_to」展示相同的行爲。 – nosretep 2010-09-03 01:34:54