1

Одним из наших требований было то, что все наши URL, оканчивающийся на .html Мы переопределен метод default_url_options, чтобы добавить формат опцийRails default_url_options для ActionController в автоматическом формате все адреса/пути с .html

def default_url_options(options={}) 
    options.merge(:format => 'html') 
end 

Это прекрасно работает в большей части ... , но это вызывает проблемы со следующими маршрутами:

map.home '/', :controller => 'home' 
map.root :controller => 'home' 

это вызывает эти маршруты, чтобы вернуться:

domain.com/?format=html 

Мне нужно найти способ сделать исключение для этих маршрутов, возможно ли это или кто-нибудь знает более умный способ сделать это.

ответ

1

Ну это заставить его работать с Haml ... (ERB непроверенные)

map.home '/', :controller => 'home', :format => 'html' 
0

Это, казалось, работало для меня в кратчайшие сроки.

map.home '/', :controller => 'home', :format => '' 
+0

Реализация этого на рельсы 2.3.2 дает мне .... Обработка ApplicationController # индекс к (для 127.0 .0.1 в 2009-08-17 09:50:45) [GET] Параметры: {"format" => "", "action" => "index", "controller" => "home"} ArgumentError (интернирование пустой строки): /opt/local/lib/ruby/gems/1.8/gems/haml-edge-2.1.12/lib/haml/helpers/action_view_mods.rb:14:in 'render ' – Rob

+0

Да, я не пробовал это с хамлом - извините. –

+0

не беспокоится, это должно быть связано с тем, как крючки haml вставляются – Rob