你的第一個例子:
map.getproduct '/getProduct', :controller => 'your_controller', :action => 'your_action'
在控制器,你將有catType和顏色PARAMS哈希:
params[:catType]
=> 'toy'
params[:color]
=> 'red'
有沒有更好的辦法?可能是的,但這取決於你的需求。如果你將永遠有catType和顏色參數,比你可以像這樣添加路由:
map.getproduct '/getProduct/:catType/:color', :controller => 'your_controller', :action => 'your_action'
您將有機會獲得使用參數散列這些參數就像在前面的例子。而您的網址看起來就像這樣:
www.myapp.com/getProduct/toy/red
如果你的參數可能會改變,你可以使用通配符路線:
map.getproduct '/getProduct/*query', :controller => 'your_controller', :action => 'your_action'
然後,它會趕上,在開始時有www.my.app.com/getProduct/...
所有請求。但是你會在控制器中做更多的工作。您將有與此訪問query
:
params[:query]
和www.myapp.com/getProduct/color/red/catType/toy
它會給:
params[:query]
=> ['color', 'red', 'catType', 'toy]
所以,你必須manualy解析它。
太好了...... Restful方法正是我想要的!檢查並投票。 – 2010-02-15 13:49:57
我不喜歡它是寧靜的。這些路線只搜索一些產品集合。 @chrisdinn的答案更加寧靜,但我認爲搜索路線不需要安寧。 Restful主要用於獲取物體的集合和操縱其中一個物體。但無論如何,我很高興我的回答很有幫助! – klew 2010-02-15 14:25:13