2010-01-21 52 views
2

我在我的紅寶石代碼中使用命名的路線。我來自phpworld,您將通過$_GET$_POST傳遞信息。我在想,如果有要投入的routes.rb這個像這樣的方式:?在routes.rb與map.with_options ruby​​

map.with_options :controller => 'test' do |m| 
    m.someurl 'someurl?search=someterm', :action => 'index' 
end 

目前它返回can't convert Hash into String。謝謝!

賈斯汀

回答

3

如果你想只用一個查詢字符串,你並不需要告訴你的路線可言。 params對象將包含任何傳遞的參數。

map.with_options :controller => 'test' do |m| 
    m.some_url 'someurl', :action => 'index' 
end 

然後,當你使用輔助方法:

some_url_path(:搜索=> 「someterm」)

將爲您創建的查詢字符串值。

但是,如果你想一個參數傳遞給控制器​​,你可以在你的路由綁定他們:

map.connect ':controller/:action/:id/:search' 

在你的控制器,你可以再訪問:

params[:search] 

你的情況這將是向上類似:

map.with_options :controller => 'test' do |m| 
    m.some_url 'someurl' :action => 'index' 
end 

Rails Routing Guide提供了一個極好的OV關於這個問題的評論。