Rails link_to автоматически не использует request.format в качестве расширения в ссылках - PullRequest
1 голос
/ 02 сентября 2010

Я устанавливаю request.format =: mobile в ApplicationController before_filter.

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" не является жизнеспособным решением.

Есть идеи?

Спасибо

1 Ответ

0 голосов
/ 02 сентября 2010

Вам нужно только указать формат в помощнике, если вы хотите, чтобы URL показывал my_list.mobile.Однако, если ваш фильтр не использует URL-адрес для определения формата, и вы устанавливаете формат в своем контроллере, зачем он вам понадобится и в URL-адресе?Ваш контроллер должен отвечать на формат .mobile без него в URL, когда переопределен request.format.

Вероятно, вы можете удалить часть .:format определения маршрута и просто положиться на устанавливаемый объект запроса.

...