2012-06-12 107 views
0

我有這樣的規則:Rails路由 - 如何將.html擴展添加到路由規則?

match '*urlnames' => 'home#searching_names' 

的URL地址看起來像website.com/john.html。 的問題是,在日誌中我看到

Parameters: {"urlnames"=>"john"} 

沒有.html擴展。文本擴展很重要,我需要在控制器中進行測試。 我試圖添加到路由規則這一部分:

match '*urlnames' => 'home#searching_names', :defaults => { :format => "html" } 

但仍然是相同的,在日誌中

Parameters: {"urlnames"=>"john"} 

我怎樣才能捕捉到控制器擴展?

+0

什麼'rake routes'顯示? – jdoe

回答

2

您可以通過request.parameters[:format]或(作爲MIME類型)使用request.format訪問請求的格式。

但是,你也可以使用一個respond_to塊:

def show 
    file = params[:urlnames] 
    respond_to do |format| 
    format.html { ... } 
    format.txt { ... } 
    end 
end 

其中...是程序代碼來渲染一些文本,或發送一些數據或文件。

如果你只是想顯示一些靜態文件,只需將它們放在公共目錄中,並完全繞過Rails。