2011-12-06 64 views
3

我的一位客戶希望他的新Rails應用程序看起來更像他的傳統網站。他想知道我是否可以強制網址擁有文件擴展名,最好是.htmlRails 3.1強制.html而不是擴展

我不想硬編碼routes.rb擴展爲

match ':controller/:action/:id.html' 

(或類似),因爲客戶機也希望有這需要使用的.:format一個respond_to風格的JSON API。

可以這樣做嗎?

回答

5

正如馬蒂亞斯瓦德曼建議,在config/application.rb加:

AppName::Application.default_url_options = { :format => "html" } 

而且還改變了config/routes.rb到:

root :to => 'pages#home', :defaults => { :format => "html" } 
2

Im no Rails路由專家,但我試圖通過更改默認的URL選項強制HTML格式,至少URL助手接口現在生成.html網址,這是一個開始。

的config/application.rb中(底部)

AppName::Application.default_url_options = {:format => "html"} 
+0

這也將'?format = html'添加到'root_url'。 –

+0

嗯接縫爲我工作,很奇怪。當你運行'rake routes'時,你看到......(:格式)嗎? –

+0

'rake routes'的輸出:'/:action(.:format){:controller =>「pages」,:action =>「:action」}'和'root/{:controller =>「pages」,:行動=> 「家」}'。 (我不能將它分解成多行註釋。)使用'link_to ...'工作,但使用'<%= root_url%>'返回'http:// server:3000 /?format = html' –