1

ApplicationController before_filter 内で request.format = :mobile を設定しています。

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 %>

私は以下を取得します(以下のACTUAL):

<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」に対して実行することは実行可能な解決策ではありません。

何か案が?

ありがとうございました

4

1 に答える 1

0

URLにmy_list.mobileを表示する場合にのみ、ヘルパーで形式を指定する必要があります。ただし、フィルターがURLを使用して形式を決定せず、コントローラーで形式を設定している場合、なぜURLにもそれが必要になるのでしょうか。request.formatがオーバーライドされた場合、コントローラーはURLに.mobile形式が含まれていない状態で応答する必要があります。

ルート定義の一部を削除して、.:format設定されているリクエストオブジェクトに依存することもできます。

于 2010-09-02T12:16:02.013 に答える